zoukankan      html  css  js  c++  java
  • 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 + "........");
            }
        }
    结果:
       
  • 相关阅读:
    11
    centos删除安装vsftpd
    linux安装jdk
    linux安装mysql
    关闭opera自动更新
    执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper”的子请求时出错
    ckeditor3.6.4+ckfinder2.2.2 上传图片到指定目录
    关于android@home的一点想法
    2012书单
    SAP GUI saplogon.ini配置文件的位置
  • 原文地址:https://www.cnblogs.com/tabchanj/p/5698778.html
Copyright © 2011-2022 走看看