逆向工程
在使用mybatis时需要根据数据表创建实体类,pojo类的映射文件以及sql语句和Dao层,而这些部分没有什么技术含量,myBatis官方提供了逆向功能,可以根据数据表自动生成pojo,映射文件以及dao层。我们通常将Dao层称为mapper.java,将映射文件称为mapper.xml,将会实体类称为pojo。
数据库部分
我用的数据库:MySQL 8.0.23
我新建的数据库名:sweetwine
用户名:root
密码;123456
我用的数据库版本是8.0.23 的,所以导入jar包时,与MySQL 五点几版本是不一样的。下面会提到。
查看MySQL的版本的方法:在cmd界面输入 mysql -uroot -p123456 (root是账号,123456是密码)
逆向工程
说明
导入文件之后,如果有错可以看“添加相应jar包”这一步,如果没错就修改文件就行了。因为有错的都是jar包的位置对应不上造成的。
没错的前提:在D盘新建一个文件夹【逆向工程】,在逆向工程的文件夹里放两个文件,一个叫【reverseProject】,另一个叫【逆向工程jar包】。这样就可保证jar包位置对应得上,就不会报错了。
下载地址:https://gitee.com/xiaoguo124/reverseProject
导入文件 reverseProject
添加相应jar包
选择项目,右键选择最后一个【properties】,就进入如下界面
- 第一步(图一),有错也就是带叉的全部删除(Remove)
- 第二步(图二),选择本地的jar包,添加进去(点击【Add External JARs…】)
- 图文点击打开之后,重回eclipse界面,点击【Apple and Close】就行
完成之后长这样:(有黄色感叹号,但没红叉)
说明:对我来说这里我有两个jar包时没有必要添加的,但是全部添加之后用不上的包也只是占点内存。
说一下哪些对我没用是
上图倒数第三个针对数据库mysql五点几的版本(我的是八点几),倒数第一个针对Oracle数据库
修改这个工程
因为每个人的数据库,表都不一样,所以要做一些适当的修改
三个 .xml 文件都要修改的地方
需要修改几处关键信息:
- driverClass=“驱动类”(MySQL五点几版本不加 .cj)
- connectionURL 端口号/数据库名
- userId 用户名
- password 用户密码
上图是针对数据库的修改,工程中的三个 .xml 文件都有需要该这个部分,错了就连不上了。
sweetwine是我的数据库名,可以回数据库部分看看
修改generatorConfig.xml文件
下面三个包注意一下就行(如果不改也可以)
- 第一个:生成的实体类都在这个包,它们都是类
- 第二个:生成的mapper映射文件,都在这个包,它们的后缀都是 xml
- 第三个:生成的mapper接口,都在这个包,它们都是接口
- 如果不习惯接口与xml文件在同一个包里的,可以让后两个的名字不一样就行
数据库中的表要一一对应(表名不错就行)
工程终点-运行GeneratorSqlMap.java文件
运行成功后便能生成两个包,包名就是上面 targetPackage(往上数第二张)引号的名字。
- 执行的是红色框里的文件
- 它上面的是成功之后的两个包
- 可以对比前后的工程结构,前后多的就是这两个包
把生成的两个包复制到主工程上(也就是需要写实体类和映射文件的JavaWeb项目)逆向工程的任务就结束了。
当数据库中表数量很多,且每个表里的列名也很多时,逆向工程能省了很多手写实体类,以及接口的时间。让编程变得高效。毕竟很多发明都是因为“人懒”才有的,想多动脑不动手的那种。