有一句老话叫做:
如果没有好好看官方文档,你是不会有好结果的。
不管这句话的出处是什么,重要的是不要从二手资料中去寻找答案,比如你现在正在看的这篇文章。这两天花了一些时间了解了MyBatis,并整合和Spring,过程不复杂但是不可避免踩了一些坑。
其实如果了解了MyBatis的机制,那么与Spring的整合就显得水到渠成了。首先,我们从搭建一个纯MyBatis环境开始。
MyBatis环境搭建
原材料:intellij idea+maven+mysql
新建一个maven的工程,在pom.xml中加入如下依赖包:
|
|
强烈建议使用maven管理项目的包依赖(如果你和我一样曾经被包依赖搞晕头)。
MyBatis使用SqlSessionFactory作为每一个应用的核心,SqlSessionFactory由SqlSessionFactoryBuilder通过XML配置或者Configuration实例构建出来的。
|
|
从sqlSessionFactory中获取SqlSession,SqlSession可以获得执行已经映射过的SQL语句。
|
|
我们看一下完整测试程序:
|
|
这里应该会有个疑问:mybatis-config.xml是啥。
MyBatis全局配置文件
mybatis-config.xml是MyBatis的核心配置,用于获取数据库连接、事务作用域等等。设置mybatis-config.xml如下:
|
|
jdbc.properties必须在classpath能够找到的目录下面。最后看一下mappers,告诉了MyBatis映射文件的位置。mybatis-config.xml是MyBatis的SqlSessionFactory整体配置文件,接下来我们要为每一个接口中的每个方法做sql语句映射。
XML映射文件
首先我们要声明一个接口:
|
|
其对应的映射文件如下:
|
|
其中username是我们传入查询条件。如果传入一个对象则同样需要指定相关对象类型:
|
|
MyBaits的映射文件其实还有很多东西可以深入,比如一对多的问题等等,这里不再多说,毕竟我们的目标是建立一个最小的能够顺利运行的MyBatis框架。
总结
到这里一套MyBatis环境就搭建完毕了,下面我们用一张图来总结一下。
Mybatis有四个要素,这四个要素都是层层依赖的关系:
- SqlSessionFactory是每个Mybatis的核心,它用来构造每一个Mybatis的Session并操作Sql。它依赖于MyBatis-Config.xml
- MyBatis-Config.xml是MyBatis的全局配置文件,包含数据库的设置,并指出映射文件(XXXMaper.xml)的具体位置,用来构造SqlSessionFactory。
- 映射文件XXXMapper.xml用来做接口每一个方法的映射,依赖于接口的定义。
- Interface定义我们要对数据库进行的操作。
Mybatis框架的搭建就在这里告一段落,下一篇文章我们尝试将MyBatis与Spring结合起来。