示例下载地址:http://download.csdn.net/detail/geloin/4506640
本文基于Spring 注解,让Spring跑起来。本文使用Mysql数据库。
(1) 导入相关包,包结构如下图所示:
(2) 修改src/applicationContext.xml文件,结果如下所示:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <!-- 引入jdbc配置文件 -->
- <context:property-placeholder location="classpath:jdbc.properties" />
- <!--创建jdbc数据源 -->
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${driver}" />
- <property name="url" value="${url}" />
- <property name="username" value="${username}" />
- <property name="password" value="${password}" />
- </bean>
- <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
- <!-- 创建SqlSessionFactory,同时指定数据源 -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- </bean>
- <!-- 可通过注解控制事务 -->
- <tx:annotation-driven />
- <!-- Mapper接口所在包名,Spring会自动查找其下的Mapper -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.geloin.spring.mapper" />
- </bean>
- </beans>
(3) 在src下添加jdbc.properties
- driver=com.mysql.jdbc.Driver
- url=jdbc:mysql://localhost:3306/ruisystem
- username=root
- password=root
(4) 在com.geloin.spring.entity包下添加实体类,实体类对应于数据表,其属性与数据表相同或多于数据表。
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:24:43
- */
- package com.geloin.spring.entity;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:24:43
- */
- public class Menu {
- /**
- * 惟一标识
- */
- private Integer id;
- /**
- * 父ID
- */
- private Integer parentId;
- /**
- * 名称
- */
- private String name;
- /**
- * 对应的地址
- */
- private String url;
- /**
- * 是否显示在左侧
- */
- private Integer isShowLeft;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @return the id
- */
- public Integer getId() {
- return id;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @param id
- * the id to set
- */
- public void setId(Integer id) {
- this.id = id;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @return the parentId
- */
- public Integer getParentId() {
- return parentId;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @param parentId
- * the parentId to set
- */
- public void setParentId(Integer parentId) {
- this.parentId = parentId;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @return the name
- */
- public String getName() {
- return name;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @param name
- * the name to set
- */
- public void setName(String name) {
- this.name = name;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @return the url
- */
- public String getUrl() {
- return url;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @param url
- * the url to set
- */
- public void setUrl(String url) {
- this.url = url;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @return the isShowLeft
- */
- public Integer getIsShowLeft() {
- return isShowLeft;
- }
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:19
- * @param isShowLeft
- * the isShowLeft to set
- */
- public void setIsShowLeft(Integer isShowLeft) {
- this.isShowLeft = isShowLeft;
- }
- }
(5) 在com.geloin.spring.mapper下添加实体类与数据表的映射关系(com.geloin.spring.mapper与applicationContext.xml中的配置一致)。
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:34
- */
- package com.geloin.spring.mapper;
- import java.util.List;
- import org.apache.ibatis.annotations.Param;
- import org.apache.ibatis.annotations.Result;
- import org.apache.ibatis.annotations.Results;
- import org.apache.ibatis.annotations.Select;
- import org.springframework.stereotype.Repository;
- import com.geloin.spring.entity.Menu;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:26:34
- */
- @Repository(value = "menuMapper")
- public interface MenuMapper {
- @Select(value = "${sql}")
- @Results(value = { @Result(id = true, property = "id", column = "id"),
- @Result(property = "parentId", column = "c_parent_id"),
- @Result(property = "url", column = "c_url"),
- @Result(property = "isShowLeft", column = "c_is_show_left"),
- @Result(property = "name", column = "c_name") })
- List<Menu> operateReturnBeans(@Param(value = "sql") String sql);
- }
其中,@Repository表示这是一个被Spring管理的资源,资源名称为menuMapper;@Select表示operateReturnBeans方法为一个select方法;@Results表示返回结果,@Result将返回结果中的字段名与实体类关联;@Param表示String sql这个变量是用于Mybatis的一个变量,其名称为sql(value值),该变量在@Select中调用(通过${sql}调用)。
(6) 在com.geloin.spring.service中添加MenuService接口
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:28:42
- */
- package com.geloin.spring.service;
- import java.util.List;
- import com.geloin.spring.entity.Menu;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:28:42
- */
- public interface MenuService {
- /**
- * 查询所有
- *
- * @author geloin
- * @date 2012-5-5 上午10:28:55
- * @return
- */
- List<Menu> find();
- }
(7) 在com.geloin.spring.service.impl中添加MenuServiceImpl作为MenuService接口的实现
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:29:22
- */
- package com.geloin.spring.service.impl;
- import java.util.List;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Repository;
- import org.springframework.transaction.annotation.Transactional;
- import com.geloin.spring.entity.Menu;
- import com.geloin.spring.mapper.MenuMapper;
- import com.geloin.spring.service.MenuService;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午10:29:22
- */
- @Repository(value = "menuService")
- @Transactional
- public class MenuServiceImpl implements MenuService {
- @Resource(name = "menuMapper")
- private MenuMapper menuMapper;
- /*
- * (non-Javadoc)
- *
- * @see com.geloin.spring.service.MenuService#find()
- */
- @Override
- public List<Menu> find() {
- String sql = "select * from tb_system_menu";
- return this.menuMapper.operateReturnBeans(sql);
- }
- }
其中,@Transactional表示该类被Spring作为管理事务的类,@Resource引入一个Spring定义的资源,资源名为menuMapper(name值),即为第七步定义的映射类。
(8) 修改控制器LoginController
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午9:31:52
- */
- package com.geloin.spring.controller;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- import com.geloin.spring.entity.Menu;
- import com.geloin.spring.service.MenuService;
- /**
- *
- * @author geloin
- * @date 2012-5-5 上午9:31:52
- */
- @Controller
- @RequestMapping(value = "background")
- public class LoginController {
- @Resource(name = "menuService")
- private MenuService menuService;
- /**
- *
- *
- * @author geloin
- * @date 2012-5-5 上午9:33:22
- * @return
- */
- @RequestMapping(value = "to_login")
- public ModelAndView toLogin(HttpServletResponse response) throws Exception {
- Map<String, Object> map = new HashMap<String, Object>();
- List<Menu> result = this.menuService.find();
- map.put("result", result);
- return new ModelAndView("background/menu", map);
- }
- }
通过map将从数据库中获取的值传递到jsp页面,"background/menu"值经context-dispatcher.xml转化后,变为/WEB-INF/pages/background/menu.jsp,即,方法toLogin的含义为:从数据库中获取菜单信息,然后将之存储到map中,通过map把菜单列表传递到/WEB-INF/pages/background/menu.jsp页面用于显示。
(9) 编写/WEB-INF/pages/background/menu.jsp页面
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Insert title here</title>
- </head>
- <body>
- <c:forEach items="${result }" var="item">
- ${item.id }--${item.name }--${item.parentId }--${item.url }--${item.isShowLeft }<br />
- </c:forEach>
- </body>
- </html>
(10) 显示结果
相关推荐
Spring MVC提供了强大的控制层,而MyBatis则专注于数据访问层,这两者的整合使得开发过程更为高效和灵活。下面将详细解释如何将Spring MVC与MyBatis进行整合,并实现一个实际的示例。 1. **Spring MVC框架介绍** ...
**Spring MVC 整合 Mybatis 知识点详解** 在现代Java Web开发中,Spring MVC 和 Mybatis 是两个非常流行的框架。Spring MVC 提供了强大的MVC架构支持,而Mybatis则是一个轻量级的持久层框架,专注于SQL映射。将两者...
这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...
总的来说,"spring+spring mvc+mybatis框架整合实现超市货物管理系统"是一个涵盖后端开发基础技能的项目,涉及了JavaEE的多个层面,从Web层的路由处理,到业务逻辑的实现,再到数据库操作,以及用户认证和分页显示等...
《互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析》Spring 源码剖析篇基于Spring 4.3.2 版本,剖析了Spring 上下文、Spring AOP 和Spring 事务的实现,并通过实例展示了框架陷阱的隐蔽性及学习...
通过这个实例,我们可以看到Spring MVC和MyBatis的整合能帮助我们快速地搭建一个功能完备的Web应用,实现了MVC架构和数据库操作的分离,提高了开发效率。在实际项目中,我们还可以根据需求进一步优化,例如引入缓存...
在这个"Spring + Spring MVC + MyBatis整合项目"中,你可能会看到以下关键组件和配置: 1. **配置文件**:项目中会包含Spring的`applicationContext.xml`,定义了bean的装配;Spring MVC的`servlet-context.xml`,...
此外,了解Spring框架整合MyBatis及Spring MVC的细节,对于开发基于Java EE的企业级应用非常关键。Spring MVC负责Web层的请求处理,MyBatis则是持久层框架,能够简化数据库操作。熟练掌握这些框架的整合使用,能够...
通过以上步骤,你可以实现Spring MVC与MyBatis的整合,构建出一个既能优雅处理Web请求,又能高效访问数据库的应用程序。在实际开发中,还可以结合Spring Boot和Spring Data JPA等技术进一步简化配置和提升开发效率。
Spring MVC、MyBatis 和 Spring 是Java开发领域中三大核心框架,它们的整合使用能够...这个教程中的"spring MVC3 mybatis3 spring3整合实例"应该会详细讲解这些内容,帮助开发者更好地理解和掌握这三大框架的整合使用。
《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》是一本深入探讨Java企业级应用程序开发的书籍,源代码包含多个章节的实例,旨在帮助读者理解和掌握使用Spring、Spring MVC和MyBatis框架进行实际开发的关键...
SSM框架,即Spring、Spring MVC和Mybatis的组合,是Java Web开发中常见的轻量级框架集成。这个项目利用这三个框架实现了一个简单的增删改查功能,且保证了其完美运行,使得开发者可以直接导入并使用,无需进行复杂的...
1. **示例代码**:这些代码展示了如何在实际项目中整合Spring、Spring MVC和MyBatis。它们通常包括配置文件、实体类、DAO接口及实现、Service层接口及实现、Controller层的处理逻辑等,帮助读者理解各个组件的交互...
**Spring+Spring MVC+MyBatis 整合详解** 在Java Web开发中,Spring、Spring MVC和MyBatis是常见的三大框架,它们的整合能够构建出高效、灵活且易于维护的Web应用程序。这个示例程序就是一个典型的三者结合的实例,...
基于ssm(spring+spring mvc+mybatis+maven)实现的高仿bilibili视频网站+源码+开发文档,...ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目实例 里面包含论坛, 购物商城 网页 后台管理的java项目集成
在SSM整合开发中,常见的jar包包括Spring的核心库、Spring MVC的库、MyBatis的库、数据库驱动、以及`mybatis-spring`库,这些库共同支撑起SSM的运行环境。 6. web 开发相关: 在Web开发中,除了SSM框架外,还需要...
SSM框架,全称为Spring、Spring MVC和MyBatis,是Java开发中广泛使用的轻量级Web应用框架组合。这三大框架各自承担着不同的职责,共同构建了一个高效、灵活的后端开发环境。本篇文章将深入探讨这三个核心组件,解析...
总结来说,Spring MVC与MyBatis的整合使得我们能够充分利用两者的优势:Spring MVC提供了强大的MVC架构和依赖注入,而MyBatis的注解模式则简化了SQL映射。通过这种方式,开发者可以更专注于业务逻辑,提高开发效率和...
本项目是关于"activiti+spring+spring Mvc+mybatis+maven"的整合,旨在创建一个基于Activiti工作流引擎、Spring、Spring MVC、MyBatis以及Maven的开发环境。下面将详细介绍这些技术及其整合过程。 首先,`activiti`...
在本实例中,我们将探讨如何将Spring MVC框架与MyBatis持久层框架进行整合,以构建一个基础的Web应用程序。Spring MVC提供了强大的模型-视图-控制器架构,而MyBatis则是一个轻量级的SQL映射框架,使得数据库操作更为...