spring和mybatis整合框架
来源:互联网 发布:购物群软件 编辑:程序博客网 时间:2024/05/23 20:18
Spring和MyBatis整合框架
Spring和MyBatis整合步骤
- 建立工程,加入Spring和MyBatis的有关Jar
- 建立开发目录结构,创建实体类(pojo)
- 创建数据访问接口(Dao)
- 创建数据访问接口的实现类
- 配置SQL映射语句文件
- 配置MyBatis应用配置文件
- 配置Spring应用配置文件
- Mybatis的工作流程
- Spring集成MyBatis
- SpringMVC+MyBatis框架搭建
项目整合工程目录
项目工程中加入spring和mybatis的有关Jar 点击下载
创建实体类(pojo)
package cn.pojo;public class User { private Integer id; //用户编号 private String userCode; //用户名 private String userName; //用户密码 private String userPassword; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserCode() { return userCode; } public void setUserCode(String userCode) { this.userCode = userCode; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPassword() { return userPassword; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; }}
创建数据访问接口的实现类
package cn.dao;import java.util.List;import cn.pojo.User;public interface UserMapper { //获取所有记录list集合 public List<User> getUserList(); //获取表中有所有记录条数 public int count(); //添加一条记录 public int add(User user);}
配置SQL映射语句文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.dao.UserMapper"> <!-- 获取表中所有的记录 映射到User的属性中,返回一个list集合 --> <select id="getUserList" resultType="User"> select * from user </select> <!-- 返回表中所有记录的条数 --> <select id="count" resultType="int"> select count(*) from user </select> <!-- 根据user的属性添加一条记录到表中 --> <select id="add" parameterType="User"> insert into user(id,userCode,userName,userPassword) values(#{id},#{userCode},#{userName},#{userPassword}); </select></mapper>
配置mybatis应用配置文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 在dao的mapper文件中 直接使用cn.pojo下的实体类名,将实体类名当做参数类型和返回值类型--> <typeAliases> <package name="cn.pojo"/> </typeAliases> </configuration>
配置spring应用配置文件
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- properties文件读取配置 --> <context:property-placeholder location="classpath:jdbc.properties" /> <!-- JNDI获取数据源(使用dbcp连接池) --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- 事务管理 @Transaction/AOP --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置mybatis sqlSessionFactory 在 mybatis-spring.jar中 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath:cn/dao/*.xml" /> </bean> <!-- 配置sqlSessionTemplate --> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!-- spring 使用构造器进行注入 --> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <!-- 把sqlSessionTemplate注入到测试类中--> <bean id="userDaoTest" class="cn.test.UserDaoTest"> <!-- 将资源ref:sqlSessionTemplate,使用set进行注入usetDaoTset 中的sqlSessionTemplate属性中 --> <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/> </bean></beans>
创建junit测试类
package cn.test;import static org.junit.Assert.*;import java.util.List;import org.apache.log4j.Logger;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.dao.UserMapper;import cn.pojo.User;public class UserDaoTest { //sqSession模板 private SqlSessionTemplate sqlSessionTemplate; private UserDaoTest test; //应用上下文 private ApplicationContext context; //获取当前测试地logger实例 private Logger logger = Logger.getLogger(UserDaoTest.class); @Test public void getUserListTest() { List<User> userlist = null; //使用mapper.xml文件调用sql语句 userlist = test.sqlSessionTemplate .selectList("cn.dao.UserMapper.getUserList"); //使用mapper接口映射到mapper.xml文件中 userlist = test.sqlSessionTemplate.getMapper(UserMapper.class).getUserList(); } /** * Before注解的方法在 Test前执行 */ @Before public void init() { //通过加载applicationContext-mybatis.xml获取上下文 context = new ClassPathXmlApplicationContext( "applicationContext-mybatis.xml"); //通过上下文获取中applicationContext-mybatis中UserDaoTest bean的实例 test = (UserDaoTest) context.getBean("userDaoTest"); } @Test public void addTest() { User user = new User(); user.setId(3); user.setUserCode("T03"); user.setUserName("lv"); user.setUserPassword("123456"); int flag = test.sqlSessionTemplate.getMapper(UserMapper.class).add(user); Assert.assertEquals(1, flag); } @Test public void countTest() { int count = test.sqlSessionTemplate.getMapper(UserMapper.class).count(); logger.debug("count : " + count); } public SqlSessionTemplate getSqlSessionTemplate() { return sqlSessionTemplate; } public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) { this.sqlSessionTemplate = sqlSessionTemplate; }}
MapperFactoryBean整合方式
跟上面的整合差不多,只需要实现一个接口和一个实现类,再配置下spring应用配置。
在cn.service包下实现一个UserService接口
package cn.service;import java.util.List;import cn.pojo.User;public interface UserService { // 获取所有记录list集合 public List<User> getUserList(); // 获取表中有所有记录条数 public int count(); // 添加一条记录 public int add(User user);}
在cn.service.impl包中实现一个UserServiceImpl实现类并实现UserService的接口
package cn.service.impl;import java.util.List;import cn.dao.UserMapper;import cn.pojo.User;import cn.service.UserService;public class UserServiceImpl implements UserService{ private UserMapper userMapper; public UserMapper getUserMapper() { return userMapper; } public void setUserMapper(UserMapper userMapper) { this.userMapper = userMapper; } @Override public List<User> getUserList() { // TODO Auto-generated method stub return userMapper.getUserList(); } @Override public int count() { // TODO Auto-generated method stub return userMapper.count(); } @Override public int add(User user) { // TODO Auto-generated method stub return userMapper.add(user); }}
需要更改applicationContext-mybatis.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- properties文件读取配置 --> <context:property-placeholder location="classpath:jdbc.properties" /> <!-- JNDI获取数据源(使用dbcp连接池) --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- 事务管理 @Transaction/AOP --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置mybatis sqlSessionFactory 在 mybatis-spring.jar中 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <!-- 配置dao --> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="cn.dao.UserMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <!-- service配置 --> <bean id="userService" class="cn.service.impl.UserServiceImpl"> <property name="userMapper" ref="userMapper"/> </bean></beans>
使用Junit来测试
package cn.test;import static org.junit.Assert.*;import java.util.List;import org.apache.log4j.Logger;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.pojo.User;import cn.service.UserService;public class UserServiceTest { private ApplicationContext context; private Logger logger = Logger.getLogger(UserServiceTest.class); private UserService userService; @Before public void setUp(){ context = new ClassPathXmlApplicationContext("applicationContext-mybatis.xml"); userService = (UserService) context.getBean("userService"); } @Test public void getUserListTest() { List<User> userlist = null; userlist = userService.getUserList(); if(userlist!=null && userlist.size()>0){ for(User user : userlist){ logger.debug("username ------> "+user.getUserName()); } } else { logger.debug("没有用户!"); } }}
阅读全文
0 0
- mybatis和spring整合框架
- spring和mybatis整合框架
- Spring和Mybatis框架整合
- 【MyBatis框架】mybatis和spring整合
- 【MyBatis框架】mybatis和spring整合
- spring和mybatis ,hibernate, struts2框架整合
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- MyBatis-Spring框架整合
- Mybatis和Spring整合
- mybatis和spring整合
- spring和mybatis整合
- Spring和MyBatis整合
- mybatis和spring整合
- spring和mybatis整合
- angular1项目中bower的使用
- 2017/10/29学习心得
- C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
- debian安装 MariaDB,没有提示输入 root 的密码?
- 为何spring cloud 应该使用 Euraka server 而不是 Zookeeper
- spring和mybatis整合框架
- Macbook svn安装与使用
- Beginning Visual Studio for Mac.pdf英文原版 免费下载
- 多个版本的 Python 在使用中的灵活切换
- CXF服务端The prefix "jaxws" for element "jaxws:endpoint" is not bound.
- http与https的区别
- Hello, World!
- [thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
- 2017/10/30 学习笔记