下面来学习Mybatis的三剑客。
7Mybatis三剑客
7.1Mybatis-generator
第一个剑客:generator,自动化生成数据库交互代码。
它可以根据我们的数据库自动生成pojo、dao和对应的xml文件,pojo里面放的是和DB里的字段一一对应的一个对象,dao层是一个接口,供service调用,xml是dao层接口的一个实现,也就是说我们的sql语句也都会写在xml里面。
OK,开始使用吧~
首先要保证我们的数据库是可以连接的,打开Navicat确认好~

注意我们的数据库名字叫mmall哦。
下面就来用Mybatis-generator来生成相关的文件,首先要引入Mybatis-generator的jar包,我们在pom文件的这里已经引入好啦:

jar包引入之后我们要对Mybatis-generator进行配置,配置在这个位置:

右键new一个xml文件:


然后在这个文件中进行相关配置。
戳这里下载generatorConfig.xml。
这里有提到datasource.properties这个文件:

我们就在和generatorConfiguration同一目录下创建一个datasource.properties文件:

在datasource.properties文件中我们需要配置如下内容:

把它们复制到datasource.properties文件中:

db.driverLocation是mysql-connector-java-5.1.6.jar这个包及它的路径:

配置好之后是这样的:

我们再把其他四个参数配置一下:

回到我们的generatorConfig.xml文件中来,这一部分是生成pojo包的配置:

这一部分是生成dao接口的配置:

Mybatis-generator部分配置完成。
下面进行Mybatis-generator生成对象和时间戳优化。
在IDEA右边面板找到Maven Projects,然后找到Plugins下面的mybatis-generator:generate,双击执行:

报错了:

这是具体错误:

OK,我重新下了一个mysql-connector-java-5.1.6-bin.jar:

还是不行,原来路径中的m2我少写了一个点点!
应该是.m2,加上.。
继续双击执行,新的报错:

唉,被自己蠢哭了,数据库的链接路径和用户名、密码都没有填写自己的,这是修改的几个地方:

终于成功啦!

可以看到dao层、pojo层都新生成了文件:

还有这里新生成了mappers:

我们之前在建表的时候有设置创建时间和更新时间这两个字段,目的是为了方便我们“吃后悔药”。现在我们要将mappers中的每个.xml文件中的这两个字段的内容做一些小调整,以CartMapper.xml为例。
插入的部分,将createtime和updatetime都改成now():


更新的部分,只要将updatetime改成now()就好啦,createtime不动:


然后按照这个方法把其他.xml文件也都改一下哦:

7.2Mybatis-plugin
IDEA的超级好用的Mybatis的插件,可以实现mybatis的接口文件和实现xml自动跳转,验证正确性,在xml中智能提示等功能。
下面我们来安装这个插件,File---->Settings---->Plugins:

搜索mybatis plugin,我们选择下载这个Free的:

下载中:

下载失败了,之前用社区版的时候也是这个问题,不知道为什么,气气:

下面我们换一个方式来安装插件,直接进入官网:https://plugins.jetbrains.com/
搜索插件:

下载:

解压缩:

将解压缩后的文件放入IDEA安装路径中的plugins文件夹中:

重启IDEA发现这个插件已经装好啦:

但是令人失望的是它并没有出现跳转箭头,在网上找的图片,正常应该出现这个跳转和跳回的箭头:


这样互相跳转就会很方便。
我的还是空空如也:

虽说没有箭头影响也不大,但是还是很气气,明明都是按步骤来,呜呜o(╥﹏╥)o
这个问题先搁置。
7.3Mybatis-pagehelper
Mybatis非常好用的分页组件。
在pom.xml中已经引入了:

后面的web.xml配置初始化、Spring配置初始化、SpringMVC配置初始化、Logback初始化、FTP服务器配置、IDEA注入和实时编译的配置都非常简单,这里就不说啦。
总之,经过一系列配置,我们的初始化操作就完成辣!
接下来把它提交到git云端。(整体修改的提交我忘记截屏了,这个是有一个小位置没有配置好我修改之后重新提交的,所以修改的部分很少只有一个位置,git status之后会显示修改的部分,尚未提交的部分等等等等)

add .,我们可以看到刚才红色的地方变绿了:

commit:

push:

同步都完成啦,再看一下status,nothing to commit啦:

网友评论