项目初始化03:Mybatis三剑客(Mybatis-gener
下面来学习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啦: