zoukankan      html  css  js  c++  java
  • spring和mybatis的整合配置

    参考自:

    http://www.cnblogs.com/wangmingshun/p/5674633.html

    链接中的文章里一共有三种整合方式,太多了怕记混了。

    我这里只保留第二种。

    spring中引入properties文件至少有以下两种方式:

    a.

    <!-- 引入db.properties -->
    <context:property-placeholder location="classpath:db.properties" />

    b.

    1 <!-- 引入properties文件 -->
    2 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    3     <property name="location" value="classpath:jdbc.properties" />
    4 </bean>

    我觉得还是第一种比较更简单一些。

     2、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate。
      mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。MyBatis-Spring 中,使用了SqlSessionFactoryBean来替代。SqlSessionFactoryBean有一个必须属性dataSource,另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)。
    spring-mybatis.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:mvc="http://www.springframework.org/schema/mvc"
     6     xsi:schemaLocation="http://www.springframework.org/schema/beans  
     7                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
     8                         http://www.springframework.org/schema/context  
     9                         http://www.springframework.org/schema/context/spring-context-3.1.xsd  
    10                         http://www.springframework.org/schema/mvc  
    11                         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    12     <!-- 自动扫描 -->
    13     <context:component-scan base-package="com.hua.saf" />
    14     <!-- 引入properties文件 -->
    15     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    16         <property name="location" value="classpath:jdbc.properties" />
    17     </bean>
    18 
    19     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    20         <property name="driverClassName" value="${driver}" />
    21         <property name="url" value="${url}" />
    22         <property name="username" value="${username}" />
    23         <property name="password" value="${password}" />
    24         <!-- 初始化连接大小 -->
    25         <property name="initialSize" value="${initialSize}" />
    26         <!-- 连接池最大数量 -->
    27         <property name="maxActive" value="${maxActive}" />
    28         <!-- 连接池最大空闲 -->
    29         <property name="maxIdle" value="${maxIdle}" />
    30         <!-- 连接池最小空闲 -->
    31         <property name="minIdle" value="${minIdle}" />
    32         <!-- 获取连接最大等待时间 -->
    33         <property name="maxWait" value="${maxWait}" />
    34     </bean>
    35 
    36     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    37     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    38         <property name="dataSource" ref="dataSource" />
    39         <property name="configLocation"  value="classpath:sqlMapConfig.xml"/>
    40         <!-- 自动扫描mapping.xml文件,**表示迭代查找,也可在sqlMapConfig.xml中单独指定xml文件-->
    41         <property name="mapperLocations" value="classpath:com/hua/saf/**/*.xml" />
    42     </bean>
    43     
    44     <!-- mybatis spring sqlSessionTemplate,使用时直接让spring注入即可 -->
    45     <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    46         <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
    47     </bean>
    48 
    49     <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
    50     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    51         <property name="dataSource" ref="dataSource" />
    52     </bean>
    53 </beans>

    sqlMapConfig.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE configuration PUBLIC  
    3     "-//mybatis.org//DTD Config 3.0//EN"  
    4     "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    5 <configuration>  
    6     <typeAliases>
    7         <typeAlias type="com.hua.saf.pojo.User" alias="User" />
    8     </typeAliases>
    9 </configuration>

    User.java

     1 public class User {
     2     
     3     private int id;
     4     private String username;
     5     private String password;
     6     private int age;
     7      
     8     public int getId() {
     9         return id;
    10     }
    11     public void setId(int id) {
    12         this.id = id;
    13     }
    14     public String getUsername() {
    15         return username;
    16     }
    17     public void setUsername(String username) {
    18         this.username = username;
    19     }
    20     public String getPassword() {
    21         return password;
    22     }
    23     public void setPassword(String password) {
    24         this.password = password;
    25     }
    26     public int getAge() {
    27         return age;
    28     }
    29     public void setAge(int age) {
    30         this.age = age;
    31     }
    32 }

    UserDao.java

     1 @Repository
     2 public class UserDao{
     3 
     4     @Resource
     5     private SqlSessionTemplate sqlSessionTemplate;
     6     
     7     public User getUser(int id) {
     8         return sqlSessionTemplate.selectOne(this.getClass().getName() + ".getUser", 1);
     9     }   
    10 }

    UserService.java

     1 @Service
     2 public class UserService{
     3     
     4     @Resource
     5     private UserDao userDao;
     6     
     7     public User getUser(int id) {
     8         return userDao.getUser(id);
     9     }
    10 }
  • 相关阅读:
    摆花
    关于我的博客
    博客美化更新日志
    页面美化代码1.x
    本人已转至新博客!
    回归博客园
    退役快乐
    Luogu神贴合辑
    代码高亮预览
    NOIp2018普及组初赛解题报告
  • 原文地址:https://www.cnblogs.com/Sunnor/p/6631900.html
Copyright © 2011-2022 走看看