• 3. 动态代理Mapper实现类(官方推荐方式)


    1.创建UserMapper接口

    import java.util.List;
    
    public interface UserMapper {
        /**
         * 根据Id查询用户信息
         */
        public User queryUserById(Long id);
    
        /**
         * 查询所有用户信息
         */
        public List<User> queryUserAll();
    }

    2.创建UserMapper.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:命名空间,随便写,一般保证命名空间唯一 ,为了使用接口动态代理,这里必须是接口的全路径名-->
    <mapper namespace="com.mybatis.UserMapper">
        <!-- statement,内容:sql语句。
           id:唯一标识,随便写,在同一个命名空间下保持唯一,使用动态代理之后要求和方法名保持一致
           resultType:sql语句查询结果集的封装类型,使用动态代理之后和方法的返回类型一致;resultMap:二选一
           parameterType:参数的类型,使用动态代理之后和方法的参数类型一致
         -->
        <select id="queryUserById" resultType="com.mybatis.User">
            select * from tb_user where id = #{id}
        </select>
        <select id="queryUserAll" resultType="com.mybatis.User">
            select * from tb_user
        </select>
    </mapper>

    3.全局配置文件mybatis-config.xml引入UserMapper.xml

    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>

    4.创建UserMapper测试用例

    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.InputStream;
    
    public class MybatisTest2 {
        public static void main(String[] args) throws Exception {
            // 指定全局配置文件
            String resource = "mybatis-config.xml";
            // 读取配置文件
            InputStream inputStream = Resources.getResourceAsStream(resource);
            // 构建sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 获取sqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            try {
                UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                User user = userMapper.queryUserById(1);
                System.out.println(user);
            } finally {
                sqlSession.close();
            }
        }
    }

    运行结果:

    User(id=1, userName=zpc, password=123456, name=鹏程, age=22, sex=1, birthday=Sun Sep 02 00:00:00 CDT 1990, created=2020-04-19 11:14:40.0, updated=2020-04-19 11:14:40.0)

    5.动态代理总结

  • 相关阅读:
    南桥-- 算法训练 2的次幂表示
    Ajax系列之中的一个:ajax旧貌换新颜
    ASP.NET综合管理ERP系统100%源代码+所有开发文档
    创业建议干货分享
    读取properties属性文件——国际化
    測试赛C
    Android 自己定义ViewGroup手把手教你实现ArcMenu
    【VBA研究】利用DateAdd函数取上月或上年同期的日期
    【Java集合源代码剖析】TreeMap源代码剖析
    openstack neutron L3 HA
  • 原文地址:https://www.cnblogs.com/jvStarBlog/p/12730973.html
Copyright © 2020-2023  润新知