Spring整合MyBatis

1.实体bean

    package org.hyn.bean; 
     
    public class User { 
        private int id; 
        private String name; 
        private int age; 
    ...//长长的set get 方法 

    }

2.Mapper及配置文件

    package org.hyn.maper; 
     
    import org.hyn.bean.User; 
     
    public interface UserMapper { 
        public void insertUser(User user); 
     
        public User getUser(String name); 
    } 

<?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="org.hyn.maper.UserMapper"> 
    <insert id="insertUser" parameterType="org.hyn.bean.User"> 
        insert into user(name,age) values(#{name},#{age})  
        </insert> 
    <select id="getUser" resultType="org.hyn.bean.User" 
        parameterType="java.lang.String"> 
        select * from user where name=#{name}  
       </select> 
 
    <!-- 当使用该Mybatis与Spring整合的时候,该文件必须和相应的Mapper接口文件同名,并在同一路径下 --> 
</mapper> 

3.spring配置文件

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
        <property name="dataSource" ref="myDataSource" /> 
     
        <!-- <property name="configLocation" value=""/> --> 
        <!-- 
            该属性用来指定MyBatis的XML配置文件路径,跟Spring整合时,编写MyBatis映射文件的目的无非是配置一下typeAlias、setting之类的 
            元素。不用在其中指定数据源,或者事务处理方式。就算配置了也会被忽略。因为这些都是使用Spring中的配置 
            。当然如果你不打算添加typeAlias 之类的设置的话,你连MyBatis的配置文件都不用写,更不用配置这个属性了 
        --> 
     
        <!--<property name="mapperLocations" value="src/UserMapper.xml"/>--> 
        <!-- 该配置文件用来指定Mapper映射文件的位置 ,如果映射文件与相应的接口同名,且在同一路径下,那么可以不配置该选项--> 
    </bean> 
     
    <!-- 
        注册Mapper方式一 <bean id="userMapper" 
        class="org.mybatis.spring.mapper.MapperFactoryBean"> <property 
        name="mapperInterface" 
        value="org.hyn.maper.UserMapper"/> <property 
        name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> 
    --> 
     
    <!-- 注册Mapper方式二:也可不指定特定mapper,而使用自动扫描包的方式来注册各种Mapper ,配置如下:--> 
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
        <property name="basePackage" value="org.hyn.maper" /> 
    </bean> 

4.测试类

    @Test 
    public void testGetUser() { 
        ApplicationContext aContext = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); 
        UserMapper userMapper = aContext.getBean(UserMapper.class); 
        User user = userMapper.getUser("张三"); 
        System.out.println(user.toString()); 
    } 
     
    @Test 
    public void testAddUser(){ 
        ApplicationContext aContext = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); 
        UserMapper userMapper = aContext.getBean(UserMapper.class); 
        User user = new User(); 
        user.setName("张三"); 
        user.setAge(18); 
        userMapper.insertUser(user); 
        System.out.println("添加成功"); 
    } 

posted @ 2013-02-20 15:18  逐梦北京  阅读(239)  评论(0编辑  收藏  举报