一.原理:
mybatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层的框架,mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。
mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)
将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。将sql语句及占位符号和参数全部配置在xml中。
二.架构图
3.具体实现
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
//获得SqlSession
public SqlSession getSqlSession() throws IOException {
// mybastis配置文件
String resource = "SqlMapConfig.xml";
// 得到配置文件流
InputStream impuStream = Resources.getResourceAsStream(resource);
// 创建会话工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(impuStream);
// 通过工厂得到sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
Resources可以方便地从类路径及其它位置加载资源,使用类路径资源(classpath resource),用xml文件构建SqlSessionFactory实例。
四.总结:
熟悉了架构之后,所有的代码都是在架构的基础上进行的简单操作,更加容易理解