當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)
生活随笔
收集整理的這篇文章主要介紹了
Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csdn.net/qq598535550/article/details/51703190
二、Spring整合mybatis其實是在mybatis的基礎上實現Spring框架
1、依賴的jar包,maven引入依賴:
?
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.3</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.43</version></dependency><!--****************************************************--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.2.2.RELEASE</version></dependency><!--織入的包--><dependency><groupId> org.aspectj</groupId ><artifactId> aspectjweaver</artifactId ><version> 1.8.7</version></dependency><!--添加數據源--><!--spring JDBCTemplate--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.2.0.RELEASE</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.18</version></dependency><!--dbcp 數據源--><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!--c3p0--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--spring整合mybatis--><!--Mybatis+Spring整合--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.0</version></dependency>簡化依賴:webmvc
Spring整合Myabtis依賴的:
<!--spring整合mybatis--><!--Mybatis+Spring整合--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.0</version></dependency>2、編寫核心配置文件(mybatis的許多功能都可以使用Spring來完成)
mybatis-config.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><typeAliases><package name="cn.tengyu.entity"/></typeAliases><mappers><package name="cn.tengyu.dao"/></mappers> </configuration>mapper.xml不用修改
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.tengyu.dao.EmpMapper"><cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/><!--查詢記錄數--><select id="count" resultType="int">SELECT count(1) AS count FROM emp</select><!--查詢列表--><select id="findAll" resultType="Emp">SELECT <include refid="empColumn"/> FROM emp</select><sql id="empColumn">empno,empname,deptno</sql><!--方法(1)--><!--<resultMap id="DeptResult" type="Dept"><id property="deptno" column="deptno"/><result property="deptname" column="deptname"/></resultMap><resultMap id="EmpResult" type="Emp"><id property="empno" column="empno"/><result property="empname" column="empname"/><association property="dept" javaType="Dept" resultMap="DeptResult"/></resultMap><select id="findByIndex" resultMap="EmpResult">SELECT emp.*,dept.* FROM emp,dept WHERE emp.deptno=dept.deptno LIMIT #{startIndex},#{endIndex}</select>--><!--方法(2)--><!--<resultMap id="EmpResult" type="Emp"><id property="empno" column="empno"/><result property="empname" column="empname"/><association property="dept" javaType="Dept"><id property="deptno" column="deptno"/><result property="deptname" column="deptname"/></association></resultMap><select id="findByIndex" resultMap="EmpResult">SELECT e.empno,e.empname,d.deptno,d.deptname FROM emp e,dept d WHERE e.deptno=d.deptno LIMIT #{startIndex},#{endIndex}</select>--><!--方法(3)--><resultMap id="EmpResult" type="Emp"><id property="empno" column="empno"/><result property="empname" column="empname"/><association property="dept" javaType="Dept"><id property="deptno" column="deptno"/><result property="deptname" column="deptname"/></association></resultMap><select id="findByIndex" resultMap="EmpResult">SELECT e.empno,e.empname,d.deptno,d.deptname FROM emp AS e,dept AS d WHERE e.deptno=d.deptno LIMIT #{startIndex},#{endIndex}</select> </mapper> View CodeapplicationContext.xml添加功能,即Spring接管mybatis里面的SqlSessionFactory等Bean的實現
<?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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--通過bean元素生命需要Spring創建的實例。該實例的類型通過class屬性指定,并通過id屬性為該實例制定一個名稱,以便于訪問--><!--引入數據庫配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="database.properties"/></bean><!--配置數據源--><!--<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--alibaba--><!--<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--dbcp--><!--<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--c3p0--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!--引入Mybatis文件--><bean class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config2.xml"/></bean><!--mapper--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="cn.tengyu.dao"/></bean><!--service--><bean id="deptService" class="cn.tengyu.service.impl.DeptServiceImpl"><property name="dao" ref="deptMapper"/></bean><!--加入事務--><bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!----> </beans>3、service的實現依然使用私有接口屬性
?
? 4.數據源可以靈活使用
<!--引入數據庫配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="database.properties"/></bean><!--配置數據源--><!--<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--alibaba--><!--<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--dbcp--><!--<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>--><!--c3p0--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean> View Code5.mapper的使用很簡單
<!--引入Mybatis文件--><bean class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config2.xml"/></bean><!--mapper--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="cn.tengyu.dao"/></bean><!--service--><bean id="deptService" class="cn.tengyu.service.impl.DeptServiceImpl"><property name="dao" ref="deptMapper"/></bean>測試:
@Testpublic void findAll(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");IDeptService deptService = (IDeptService) context.getBean("deptService");List<Dept> list = deptService.findAll();for (Dept o :list) {logger.debug(o.getDeptno()+"\t"+o.getDeptname());}}@Testpublic void Test02(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");IDeptService deptService = (IDeptService) context.getBean("deptService");Dept dept = new Dept();dept.setDeptname("測試部");int i = deptService.addDept(dept);logger.debug("執行"+i+"條數據!");}?
注:另外需要靈活使用Spring的AOP進行事務控制
轉載于:https://www.cnblogs.com/tengqiuyu/p/7704824.html
總結
以上是生活随笔為你收集整理的Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结对编程作业——四则运算GUI程序
- 下一篇: CentOS学习笔记 - 7. jeki