开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
简介
MyBatis是一款开源的轻量级ORM框架,相比于屏蔽了SQL的ORM框架来说,MyBatis只是提供了参数和结果集的映射,Java对象方法和sql语句的映射。开发人员可以灵活对SQL进行改动,在优化方面有很大优势。
入门
对Java项目来说,要使用框架,首先需要将框架的包引入到类路径下,这里使用maven进行管理,MyBatis的maven包如下:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
引入包路径之后,我们就可以开始学习MyBatis了。不管是什么框架,使用的套路都是:加载配置-初始化配置信息-使用-销毁 这几大步骤,所以我们就从加载配置开始。
MyBatis的应用都是以SqlSessionFactory为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder获得。而 SqlSessionFactoryBuilder 需要通过从XML中构建出来的Configuration对象中获取配置信息。如下:
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
有了SqlSessionFactoryBuilder之后,我们就可以通过SqlSessionFactoryBuilder获取Session对象,对数据库的操作都可以通过Session进行操作,如下:
try (SqlSession session = sqlSessionFactory.openSession()) {
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
}
上面的Mapper其实是我们自定义的一个接口,selectBlog也是接口中的一个方法,MyBatis通过配置信息,就可以将接口自动代理,将XML中的sql节点和mapper接口中的方法进行映射。
MyBatis中的配置
对应XML中的配置节点
properties
相当于key value形式的配置,将一些固定的属性放进去,如下:
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
然后我们就可以在别的地方对这些属性进行引用,如下:
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>