Spring + mybatis 整合实例应用


苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 Spring + mybatis 整合实例应用 项目结构图 (Spring3.0.2 +mybatis3.0.4) 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 方案一: 通过配置文件整合 Spring 和 mybatis 应用数据库 -- --数据库 tb_user -- drop table if exists tb_user; create table tb_user( id int primary key auto_increment comment '主键', username varchar(40) not null unique comment '用户名', password varchar(40) not null comment '密码', email varchar(40) comment '邮件', age int comment '年龄', sex char(2) not null comment '性别' ); 对应的实体类 package com.icreate.entity; /** * * *@version : 1.0 * 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 *@author : 苏若年 发送邮件 * *@since : 1.0 创建时间: 2013-4-9 上午11:15:50 * *@function: TODO * */ public class User { private int id; private String username; private String password; private String sex; private String email; private int age; //getter() and setter () } 数据 Dao 接口 package com.icreate.dao; import java.util.List; import com.icreate.entity.User; 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 /** * * *@version : 1.0 * *@author : 苏若年 发送邮件 * *@since : 1.0 创建时间: 2013-4-9 上午11:36:34 * *@function: TODO * */ public interface UserDao { public int insert(User user); public int update(User user); public int delete(String userName); public List selectAll(); public int countAll(); public User findByUserName(String userName); 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 } 在 config 目录下进行 Mapper 文件配置 insert into tb_user(username,password,email,sex,age) values(#{username},#{password},#{email},#{sex},#{age}) update tb_user set username=#{username},password=#{password},email=#{email},sex=#{sex},age=#{age} where username=#{username} delete from tb_user where username=#{username} 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 Mybatis 应用配置文件 MyBatis-Configuration.xml Spring 配置文件,本例中我们放在/WebRoot/WEB-INF/applicationContext.xml 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 同目录下的 web.xml 文件进行如下配置 contextConfigLocation /WEB-INF/applicationContext.xml org.springframework.web.context.ContextLoaderListener index.jsp 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 配置说明: 节点配置 contextConfigLocation 属性是为了让 ContextLoaderListener 找到 Spring 上下文的位置并加载它,如果不指定 contextConfigLocation,ContextLoaderListener 会到/WEB-INF/目录下找 applicationContext.xml 来加载。 节点上配了 ContextLoaderListener。它实现了 ServletContextListener 接口,所以 web server 启动时 ContextLoaderListener 能读取到 ServletContext,也就能通过 指定的 Spring 上下文的路径来找到上下文并加载它。 当然,如果你不需要 Spring 来管理你的 Bean,可以去掉上面两个节点。 定义 service 接口 package com.icreate.service; import java.util.List; import com.icreate.entity.User; /** * * *@version : 1.0 * *@author : 苏若年 发送邮件 * *@since : 1.0 创建时间: 2013-4-9 下午03:52:07 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 * *@function: TODO * */ public interface UserService { public int insert(User user); public int update(User user); public int delete(String userName); public List selectAll(); public int countAll(); public User findByUserName(String userName); } 实现 service 接口,执行 dao 操作 package com.icreate.service.impl; import java.util.List; import com.icreate.dao.UserDao; 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 import com.icreate.entity.User; import com.icreate.service.UserService; /** * * *@version : 1.0 * *@author : 苏若年 发送邮件 * *@since : 1.0 创建时间: 2013-4-9 下午03:53:26 * *@function: TODO * */ public class UserServiceImpl implements UserService{ private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 public int countAll() { return this.userDao.countAll(); } public int delete(String userName) { return this.userDao.delete(userName); } public User findByUserName(String userName) { return this.userDao.findByUserName(userName); } public int insert(User user) { return this.userDao.insert(user); } public List selectAll() { return this.userDao.selectAll(); } public int update(User user) { return this.userDao.update(user); } } 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 接下来写我们的测试用例 package com.icreate.service; import java.util.List; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.icreate.entity.User; /** * * *@version : 1.0 * *@author : 苏若年 发送邮件 * *@since : 1.0 创建时间: 2013-4-9 下午05:16:28 * *@function: TODO * */ 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 public class SpringBatis { ApplicationContext context = null; UserService userService = null; @Before public void initContext(){ this.context = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); this.userService = (UserService) context.getBean("userService"); } @Test public void countAll(){ System.out.println("数据库中的记录条数:" + userService.countAll()); } @Test public void insert(){ User user = new User(); user.setUsername("苏若年"); user.setPassword("passtest"); user.setEmail("dennisit@163.com"); user.setSex("男"); user.setAge(23); userService.insert(user); 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 } @Test public void selectAll(){ List list = userService.selectAll(); for(int i=0; i发送邮件 * *@since : 1.0 创建时间: 2013-4-9 上午11:36:34 * *@function: TODO * */ public interface UserDao { @Insert("insert into tb_user(username,password,email,sex,age) values(#{username},#{password},#{email},#{sex},#{age})") public int insert(User user); @Update("update tb_user set username=#{username},password=#{password},email=#{email},sex=#{sex},age=#{age} where 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 username=#{username}") public int update(User user); @Delete("delete from tb_user where username=#{username}") public int delete(String userName); @Select("select * from tb_user ") public List selectAll(); @Select("select count(*) from tb_user") public int countAll(); @Select("select * from tb_user where username=#{username}") public User findByUserName(String userName); } Service 接口与实现不变. Spring 配置文件内容如下 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 Web.xml 文件配置如下 contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener index.jsp 苏若年 Email: dennisit@163.com 博客:http://www.cnblogs.com/dennisit/ Spring + mybatis 整合实例应用 测试类大致上没有变化,只是 ApplicationContext 初始化的方法改变成了下面方式 ApplicationContext context = null; UserService userService = null; @Before public void initContext(){ this.context = new ClassPathXmlApplicationContext("applicationContext.xml"); //this.context = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); this.userService = (UserService) context.getBean("userService"); } 至此我们 Spring 与 mybatis 整合实例应用演示完毕
还剩22页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

qyj5601

贡献于2014-11-27

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf