MyBatis详解:逆向工程自动生成代码
目录
一、什么是逆向工程
MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。企业实际开发中,常用的逆向工程方式是通过数据库的表生成java代码。
二、下载逆向工程
使用MyBatis的逆向工程,需要导入逆向工程的jar包,这里给出了逆向工程官网下载的内容以及所需要的jar包的百度云链接。
链接:https://pan.baidu.com/s/1U8gtpFtL5cKafN_XXOLkMg
提取码:kq0t
三、创建java工程
使用mybatis的逆向工程来由数据库的表生成java代码最好新建一个java工程或者IDEA新建一个模块。原因在于:如果在你要使用到逆向工所生成的代码的工程中生成代码,会存在风险。因为MyBatis是根据配置文件来生成的(下面会说到),如果生成的路径中有相同的文件,那么就会覆盖原来的文件,这样会有风险。所以开发中一般都会新建一个java工程来生成,然后将生成的文件拷贝到自己的工程中,这也不麻烦,而且很安全。
工程结构如下:
我是用的是IDEA软件,eclipse或MyEclipse也是一样的,下面对工程结构做出一些解释:
generatorConfig.xml:这是逆向工程的xml配置文件,本文使用的方法就是逆向工程的使用xml配置文件的方式来生成代码。我把它直接存放在模块下(eclipse可以直接存放在工程下,存放在哪里并不重要,我们会在主程序中用到该文件的相对路径)
lib:这里存放的是jar包,在上面的百度云链接可以下载到
src:存放的执行程序和log4j.proprerties文件
log4j文件的内容如下:
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
四、逆向工程的xml配置文件
4.1、xml配置文件分析
我们是使用xml配置文件的方式来生成代码,故配置文件是最为重要的步骤。
以下的配置文件主要做了4件事:
1、连接数据库,配置数据库的连接信息
2、相关属性设置
3、指定要生成代码的位置,包括po类,mapper.xml和mapper.java这三类代码,一般po类放在po包下,mapper.xml和mapper.java放在mapper包下
4、指定数据库中哪些表要生成代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="testTables"