简介
通过简化实现流程,把MyBatis的最核心的内容展示出
mybatis的加载过程
执行流程
类图
核心流程
public class ApiTest {
@Test
public void test_queryUserInfoById() {
String resource = "mybatis-config-datasource.xml";
Reader reader;
try {
reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlMapper.openSession();
try {
User user = session.selectOne("cn.bugstack.middleware.mybatis.test.dao.IUserDao.queryUserInfoById", 1L);
System.out.println(JSON.toJSONString(user));
List<User> users = session.selectList("cn.bugstack.middleware.mybatis.test.dao.IUserDao.queryUserList");
System.out.println(JSON.toJSONString(users));
} finally {
session.close();
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 通过路径获取流
- 通过流信息,创建会话工厂
- 打开会话
- 执行sql
通过入参获取到指定的xNode信息
解析入参,sql解析
执行sql
解析出参 - 关闭会话
小结
通过简单的配置,构建一个完整的SqlSession,避免用户自己手动创建、释放链接,并解决了sql和代码相关的耦合。
mybatis-spring
待补充