mybatis中的動態代理應用(mapper對象)


-----------------UserMapper的配置信息---------------------
<?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.tabchanj.mybatis.domain.UserMapper">
    <resultMap type="com.tabchanj.mybatis.domain.User" id="User"/>
    <select id="get" parameterType="Long" resultMap="User">
        select * from
        t_user
        where id = #{id}
    </select>

    <select id="list" resultMap="User">
        select * from t_user
    </select>
</mapper>

1.將mapper配置文件中的namespace路徑作為一個接口的全限定名,即創建一個接口,其全限定名為namespace的名稱.

2.該接口的方法名與mapper文件中的sql語句的id名相同,返回值與sql語句的resultType相同,參數類型與paramterType相同,

---------UserMapper接口------------
package
com.tabchanj.mybatis.domain; import java.util.List; public interface UserMapper { User get(Long id); List<User> list(); }

3.使用時,通過 sqlsession對象.getMapper(接口.class)獲取到該接口的代理實現類,,可以直接使用該類進行crud,該類可看作是一個Dao.

    @Test
    public void testName1() throws Exception {
        //通過sqlsession獲得代理對象(Mapper)
        UserMapper mapper = MyBatisUtil.openSession().getMapper(UserMapper.class);
        //mapper調用接口中方法,相當於執行了mapper映射文件中的id為get的sql語句
        User u = mapper.get(1L);
        System.out.println(u + "----------");
        //mapper調用接口中方法,相當於執行了mapper映射文件中的id為list的sql語句
        List<User> list = mapper.list();
        for (User user : list) {
            System.err.println(user + "........");
        }
    }
結果:
   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM