mybatis和spring整合——常用的两种

网上转载实例:

 

本文主要介绍了如何将mybatis和spring整合在一起使用,本人使用的是mybatis3.05 + spring3.1.0M2 ,使用dbcp作为数据库连接池。

 

1.编写数据访问接口(UserDao.java)

 

package com.mybatis;
publicinterface UserDao {
    publicint countAll();
}

 

2.编写数据访问接口映射文件(UserDaoMapper.xml)

 

复制代码
<?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="com.mybatis.UserDao"><select id="countAll" resultType="int">
        select count(*) c from user;
    </select></mapper>
复制代码

 

3.编写mybatis配置文件(MyBatis-Configuration.xml)

 

复制代码
<?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><mappers><mapper resource="com/mybatis/UserDaoMapper.xml"/></mappers></configuration>
复制代码

 

4.编写服务层接口(UserService.java)

 

package com.mybatis;

publicinterface UserService {
    publicint countAll();
}

 

5.编写服务层实现代码(UserServiceImpl.java)

 

复制代码
package com.mybatis;

publicclass UserServiceImpl implements UserService {
    private UserDao userDao;

    public UserDao getUserDao() {
        return userDao;
    }
    publicvoid setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    
    publicint countAll() {
        returnthis.userDao.countAll();
    }
}
复制代码

 

6.编写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-3.0.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/hlp?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull"></property><property name="username" value="root"></property><property name="password" value="1234"></property><property name="maxActive" value="100"></property><property name="maxIdle" value="30"></property><property name="maxWait" value="500"></property><property name="defaultAutoCommit" value="true"></property></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:MyBatis-Configuration.xml"></property><property name="dataSource" ref="dataSource"/></bean><bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean"><property name="mapperInterface" value="com.mybatis.UserDao"></property><property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean><bean id="userService" class="com.mybatis.UserServiceImpl"><property name="userDao" ref="userDao"></property></bean></beans>
复制代码

 

7.测试代码(UserServiceTest.java)

 

复制代码

 

package com.mybatis;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


publicclass UserServiceTest {
    
    @Test
    publicvoid userServiceTest(){
        ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = (UserService)context.getBean("userService");
        System.out.println(userService.countAll());
    }
}

  

 

附录:需要导入的库

 

mybatis和spring整合——常用的两种

 

 

 

另一种:

 

applicationContext.xml

 

[html] view plain copy
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.         <property name="dataSource" ref="dataSource" />  
  3.         <property name="mapperLocations" value="classpath*:maps/**/*.xml" />  
  4.           
  5.     </bean>  
  6.   
  7. <bean id="baseDao" class="com.dao.AbstractDao" abstract="true">  
  8.         <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
  9. </bean>  

 

AbstractDao

 

 

 

[java] view plain copy
  1. package com.common.dao;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. import org.mybatis.spring.support.SqlSessionDaoSupport;  
  6. import org.springframework.beans.factory.annotation.Autowired;  
  7.   
  8. import common.utils.ComLogger;  
  9.   
  10. /** 
  11.  * 抽象Dao 
  12.  */  
  13. public class AbstractDao extends SqlSessionDaoSupport implements Serializable {  
  14.       
  15.     /** 
  16.      * 
  17.      */  
  18.     private static final long serialVersionUID = 4349985369282562159L;  
  19.       
  20.     /** 
  21.      * 
  22.      */  
  23.     @Autowired  
  24.     protected transient ComLogger logger;  
  25.       
  26. }  


具体实例dao

[java] view plain copy
  1. /** 
  2.  *  
  3.  *  
  4.  * @author  
  5.  *  
  6.  */  
  7. @Component  
  8.   
  9. public class Somedao extends AbstractDao {  
  10.   
  11.     /** 
  12.      * serialVersionUID 
  13.      */  
  14.     private static final long serialVersionUID = -1524915644527798140L;  
  15.     /** 
  16.      *  
  17.      *  
  18.      * @param mp 
  19.      * @return list 
  20.      */  
  21.     public List<?> selectTtproperty(final Map<String, Object> mp) {  
  22.         return getSqlSession().selectList("Some.countAll", mp);  
  23.     }  
  24.       
  25. }  

 

数据访问接口映射文件

 

[html] view plain copy
  1. <mapper namespace="Some">  
  2.     <select id="countAll" resultType="int">  
  3.         select count(*) c from user;  
  4.     </select>  
  5. </mapper>  

或者用resultMap




你可能感兴趣的:(转载)