史上最简单的MyBatis HellowWorld

MyBatis的使用方式比较简单,只要配置几个文件就可以了,但这也带来一个问题就是不好理解因为都封装在内部看不到其实现过程,这个如果以后有精力继续留意下源码上的东西。现在初步理解一下这个MyBatis究竟是怎么用的就行了。

首先为了简单起见,不使用web app的方式来写这个HellowWorld,免得加入其它的元素影响对MyBatis的理解,因此这里采用java project的方式。来看看​下面的目录结构,除了jre以外添加的额外jar包只有两个,一个是MyBatis的jar包,另一个是mysql的驱动jar包。

史上最简单的MyBatis HellowWorld

MyBatis整个工作都是以SqlSession来进行的,所以这里就建立了一个SqlSessionFactoryUtil工具类,用于以单例模式来生成SqlSessionFactory,再通过SqlSessionFactory返回SqlSession。主要的流程就是:SqlSessionFactoryBuilder→SqlSessionFactorySqlSession。以下是SqlSessionFactoryUtil工具类代码:

这个工具类里面使用到了一个配置文件:mybatis-config.xml文件,这个文件用于配置我们的数据库链接参数以及SQL映射文件。SqlSessionFactoryBuilder就是使用这个文件里的配置来生成一个SqlSessionFactory的。一下基本上试最简单的配置文件了,只配置了数据库链接方式,使用的驱动,还有映射文件的路径,其实还有很多配置元素,但既然是最简单的HelloWorld,那么不是必要的就统统不要了。

史上最简单的MyBatis HellowWorld

​这里使用到了EventionMapper.xml文件,这个文件里面写的就是SQL语句,同时编写相同名称的EventionMapper接口,通过接口来调用所要使用的SQL语句。需要注意的是,在EventionMapper.xml文件中,设置mapper的namespace属性,为其同名称接口的名称空间,并且注意select元素中的id与EventionMapper接口中的方法名一致,才能够通过EventionMapper接口中的方法对SQL进行调用。

史上最简单的MyBatis HellowWorldEventionMapper.xml
史上最简单的MyBatis HellowWorldEventionMapper.java

​通过上面两个映射文件的配置,还少个一个实体类了,MyBatis最方便使用的地方就是通过SQL获取的数据直接返回实体类,这个返回类型在EventionMapper.xml以及EventionMapper接口中有设置到:evection类型,于是再写一个evection实体类型:

史上最简单的MyBatis HellowWorld

​到这里已经完成了MyBatis HelloWorld的全部配置工作了,很简单,一个MyBatis的配置文件主要用于配置数据库链接方式,一个用于生成SqlSession的工具类,两个用于映射SQL的xml文件和接口文件,还有一个实体类。最后测试一下这个东西,成功输出了。

史上最简单的MyBatis HellowWorld

​这个估计是最简单的MyBatis的Hellow World了,后面再慢慢研究其他玩法。不过从这里就可以看出这个非常方便使用,当我们需要添加新的操作时,只需要修改与SQL映射有关的两个文件即可,其余均不需要修改,这样我们就可以专注于业务内容而不是一大堆JDBC的操作了。

以上代码地址:https://gitee.com/ArainChen/MyTestProject1