之前已经搭好了 Mybatis 的学习环境,下面我们来做一下入门案例;
编写测试方法
@Test public void testMysatis() throws Exception{ //1、读取配置文件 InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); //2、创建 SqlSessionFactory 工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = builder.build(inputStream); //3、使用 SqlSessionFactory 创建 SqlSession 对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //4、使用 SqlSession 创建 Dao 接口的代理对象 IUserDao iUserDao = sqlSession.getMapper(IUserDao.class); //5、使用 代理对象执行 具体方法 List<User> users = iUserDao.getAll(); for(User user:users){ System.out.println (user); } //6、释放资源 sqlSession.close(); inputStream.close(); }
运行测试方法得到如下结果:
ser{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京'} User{id=42, username='小二王', birthday=Fri Mar 02 15:09:37 CST 2018, sex='女', address='北京金燕龙'} User{id=43, username='小二王', birthday=Sun Mar 04 11:34:34 CST 2018, sex='女', address='北京金燕龙'} User{id=45, username='传智播客', birthday=Sun Mar 04 12:04:06 CST 2018, sex='男', address='北京金燕龙'} User{id=46, username='老王', birthday=Wed Mar 07 17:37:26 CST 2018, sex='男', address='北京'} User{id=48, username='小马宝莉', birthday=Thu Mar 08 11:44:00 CST 2018, sex='女', address='北京修正'}
注意事项:
1、之前我们编写的 Mapper 映射文件的查询标签未指明 返回结果的封装类型,这样是存在问题的,需要进行指明查询结果的封装类型;如下
<?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.wdh01.dao.IUserDao"> <!-- 配置查询所有 id dao 接口方法名,resultType 擦汗寻结果返回信息封装类型 --> <select id="getAll" resultType="org.wdh01.domain.User"> SELECT * FROM test.user </select> <!-- 注意事项: resultType 擦汗寻结果返回信息封装类型 --> </mapper>
2、运行测试程序之前需要引入 log4j..properties 配置文件;
需要将配置文件 放到 resourcse 目录即可,无需特别关注内容;