(四)mybatis学习之原始Dao开发方式及与spring整合
来源:互联网 发布:手机游戏拍摄软件 编辑:程序博客网 时间:2024/06/02 02:45
原始Dao开发方式
配置文件
使用之前的user.xml
sqlMapConfig.xml中也已经配置加载了user.xml
定义接口
public interface UserDao {//根据id查询用户信息public User findUserById(String id) throws Exception;//添加用户信息public void insertUser(User user) throws Exception;//根据Id删除用户信息public void deleteUserById(String id) throws Exception;}
定义实现类
public class UserDaoImpl implements UserDao {private SqlSessionFactory sqlSessionFactory;//使用构造函数注入SqlSessionFactorypublic UserDaoImpl(SqlSessionFactory sqlSessionFactory){this.sqlSessionFactory = sqlSessionFactory;}public User findUserById(String id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();User user = sqlSession.selectOne("xxxx.findUserById", id);//释放资源sqlSession.close();return user;}public void insertUser(User user) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("xxxx.addUser", user);sqlSession.commit();//释放资源sqlSession.close();}public void deleteUserById(String id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("xxxx.deleteUserById", id);sqlSession.commit();//释放资源sqlSession.close();}}
代码测试
public class UserDaoImplTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void setUp() throws IOException{//创建SqlSessionFactoryString resource = "sqlMapConfig.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {//创建UserDao的对象UserDao userDao = new UserDaoImpl(sqlSessionFactory);//调用dao方法User user = userDao.findUserById("4028818f47e229d70147e2742f1b0005");System.out.println(user);}}
原始Dao开发方式及与spring的整合
mybatis配置文件
sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 加载映射文件 --><mappers><mapper resource="sqlMap/user.xml"/></mappers></configuration>
映射文件
使用之前的user.xml
添加依赖包
在之前的项目基础上还需要加入spring的依赖包 、mybatis和spring的整合包
最终的pom.xml内容如下:
<dependencies> <!-- 添加servlet的依赖包 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency> <!-- 添加mybatis的依赖包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.1</version></dependency><!-- 加入mysql数据库依赖包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency><!-- 添加log4j依赖包(slf4j和log4j) --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.20</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency> <!-- junit单元测试包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 加入spring依赖包 --> <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.2.1.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.2.1.RELEASE</version></dependency><!-- c3p0依赖包 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!-- mybatis和spring的整合包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.4</version></dependency> </dependencies>
spring配置文件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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"/><property name="user" value="root"/><property name="password" value="888"/> <property name="minPoolSize" value="5" /> <property name="initialPoolSize" value="5" /> <property name="maxPoolSize" value="50" /> <property name="maxIdleTime" value="30000" /> <property name="checkoutTimeout" value="6000"/> <property name="acquireIncrement" value="5" /> <property name="acquireRetryAttempts" value="5" /> <property name="acquireRetryDelay" value="1000" /> <property name="idleConnectionTestPeriod" value="1800" /> <property name="breakAfterAcquireFailure" value="false" /> <property name="preferredTestQuery" value="select 1" /> </bean> <!-- SqlSessionFactory 原生态的mybatis里,sqlMapConfig.xml全局配置文件里配置了environments元素【配置数据源】和一些映射文件,我们是通过SqlSessionFactoryBuilder加载读取解析全局配置文件,然后生成SqlSessionFactory会话工厂。现在mybatis和spring进行整合,则sqlMapConfig.xml里不再需要environments,数据源的配置交给了spring来管理;SqlSessionFactoryBuilder解脱了,SqlSessionFactory会话工厂的创建交由spring来管理了--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 加载mybatis配置文件(此时配置文件里面主要是一些映射文件,一些全局的配置信息) --><property name="configLocation" value="sqlMapConfig.xml"/><!-- 数据源 --><property name="dataSource" ref="dataSource"/></bean><bean id="userDao" class="dao.impl.UserDaoImpl"><property name="sqlSessionFactory" ref="sqlSessionFactory"/></bean></beans>
dao接口
public interface UserDao {//根据id查询用户信息public User findUserById(String id) throws Exception;//添加用户信息public void insertUser(User user) throws Exception;//根据Id删除用户信息public void deleteUserById(String id) throws Exception;}
dao接口实现类
package dao.impl;import org.apache.ibatis.session.SqlSession;import org.mybatis.spring.support.SqlSessionDaoSupport;import dao.UserDao;import pojo.User;/** * * @ClassName: UserDaoImpl * @Description: 继承SqlSessionDaoSupport,使用该类,需要导入spring-tx.jar包* @author CARLO 931131403@qq.com* @date 2016年4月3日 下午7:52:46 */public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {public User findUserById(String id) throws Exception {SqlSession sqlSession = this.getSqlSession();User user = sqlSession.selectOne("xxxx.findUserById", id);//释放资源.spring管理后,方法执行会自动释放资源//sqlSession.close();return user;}public void insertUser(User user) throws Exception {SqlSession sqlSession = this.getSqlSession();sqlSession.insert("xxxx.addUser", user);sqlSession.commit();//释放资源.spring管理后,方法执行会自动释放资源//sqlSession.close();}public void deleteUserById(String id) throws Exception {SqlSession sqlSession = this.getSqlSession();sqlSession.insert("xxxx.deleteUserById", id);sqlSession.commit();//释放资源.spring管理后,方法执行会自动释放资源//sqlSession.close();}}
测试
package mybatis;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import dao.UserDao;import pojo.User;public class UserDaoImplTest {private ApplicationContext context;@Beforepublic void setUp() throws Exception {context = new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");}@Testpublic void testFindUserById() throws Exception {UserDao userDao = context.getBean(UserDao.class);User user = userDao.findUserById("402881bc492d83bb01492d8630ad0000");System.out.println(user);}}
0 0
- (四)mybatis学习之原始Dao开发方式及与spring整合
- Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合
- Spring与Mybatis的整合之原始Dao的整合方式
- spring 与 mybatis 整合 原始dao写法
- spring+springmvc+mybatis(1)--整合和原始dao开发
- mybatis整合spring(mapper+原始dao)
- (五)mybatis学习之mapper代理开发方式及与spring整合
- 【Mybatis从0到1-015】Spring与MyBatis整合原始开发DAO(不推荐使用)
- mybatis和spring整合后原始dao的开发
- 【Spring+SpringMVC+MyBatis深入学习及搭建】02.MyBatis原始Dao开发和mapper代理开发
- MyBatis原始Dao开发方式
- spring整合mybatis(原始dao和mapper代理两种方式)
- mybatis学习之原始开发DAO与mapper代理开发DAO的区别
- Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
- Mybatis和Spring整合(原始Dao)非mapper代理
- Spring和Mybatis整合(原始dao)
- Mybatis-Dao层开发之原始dao
- mybatis开发原始dao的方式
- Mount挂载命令使用方法
- android onSaveInstanceState方法 横坚屏切换
- MySQL数据库小结---待完善
- NSArray 的大部分用法
- 【湖南集训 4.2】正12面体
- (四)mybatis学习之原始Dao开发方式及与spring整合
- Ruby语言基础学习十:Ruby文件输入输出
- XAudio2学习之混音
- 抽象类 面积与周长
- JAVA中的管道流
- (五)mybatis学习之mapper代理开发方式及与spring整合
- 常规功能和模块自定义系统 (cfcmms)—039模块记录(数据)的权限设计(4)
- LeetCode:计算相同数组元素的下标差(Contains Duplicate II)
- HDFS的备份机制