3. 动态代理Mapper实现类(官方推荐方式)
Posted 11014p
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.动态代理总结
以上是关于3. 动态代理Mapper实现类(官方推荐方式)的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis精简版--实现接口代理方式实现Mapper(Dao) 和动态SQL
MyBatis精简版--实现接口代理方式实现Mapper(Dao) 和动态SQL