一、配置pom.xml 文件
<!--逆向工具插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
以及数据库连接驱动及mybatis包的导入
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
二、配置Mybatis的属性文件、配置文件及generator文件的配置
mybatis属性文件 mybatis.properties (像数据库连接配置等可以同时适用后面两个配置文件)
# jdbc
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root1996
#dbcp
initialSize=0
maxActive=10
maxIdle=10
minIdle=1
maxWait=60000
#mybatis generator
#本地jar的路径
drive.class.path=D:/Maven/Library/.m2/repository/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar
model.package=org.lanqiao.entity
dao.package=org.lanqiao.dao
xml.mapper.package=org.lanqiao.dao
target.project.java=src/main/java
target.project.resources=src/main/resources
2.generatorConfig.xml配置文件
<?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>
<!-- 配置文件路径 -->
<properties resource="mybatis.properties" />
<!--数据库驱动包路径 -->
<classPathEntry location="${drive.class.path}" />
<context id="MySQLTables" targetRuntime="MyBatis3">
<!--关闭注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->
<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 -->
</commentGenerator>
<!--数据库连接信息 -->
<jdbcConnection
driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!--生成的model 包路径 -->
<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<!--<javaModelGenerator targetPackage="org.lanqiao.entity"-->
<!--targetProject="src/main/java">-->
<javaModelGenerator
targetPackage="${model.package}"
targetProject="${target.project.java}">
<!-- 是否允许子包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="true" />
<!-- 是否对model添加 构造函数 -->
<property name="constructorBased" value="true"/>
<!-- 是否对类CHAR类型的列的数据进行trim操作 -->
<property name="trimStrings" value="true"/>
<!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--生成xml mapper文件 路径 -->
<sqlMapGenerator targetPackage="${xml.mapper.package}"
targetProject="${target.project.resources}">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="${dao.package}" targetProject="${target.project.java}">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--对应数据库表名 -->
<table tableName="t_user" domainObjectName="User"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
<!--如果设置为true,生成的entity类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE_Time,生成的属性名字就是BORN_DATE_Time,而不会是bornDateTime-->
<property name="useActualColumnNames" value="true" />
<!--忽略列,不生成bean 字段-->
<ignoreColumn column="user_Address" />
<!--指定列的java数据类型-->
<!--<columnOverride column="user_Address" jdbcType="Integer" />-->
</table>
</context>
</generatorConfiguration>
3.mybatis-Config.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引用mybatis.properties配置文件 -->
<properties resource="mybatis.properties" />
<!--Log4J日志文件配置-->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- development : 开发模式 work : 工作模式 -->
<environments default="development">
<!--可以配置多个数据库连接,选择不同的数据集合-->
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!-- 映射文件 -->
<mappers>
<mapper resource="org/lanqiao/dao/UserMapper.xml" />
</mappers>
</configuration>
三、反向生成代码
和配置Tomcat类似,新建一个Maven,第一行为项目路径不要管,第二行写下面命令
mybatis-generator:generate -e
点击OK然后运行即可。
生成如下代码结构

注意:生成的Usermapper.xml文件不可以被覆盖,多次反向生成测试的时候会出现错误,每次生成可以删除出现生成。
四、测试是否可用
写一个Junit测试 如下
package org.lanqiao.dao;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Assert;
import org.junit.Test;
import org.lanqiao.entity.User;
import java.io.IOException;
import java.io.Reader;
public class UserMapperTest {
@Test
public void testSelectByPrimaryKey(){
SqlSessionFactory sqlSessionFactory;
Reader reader;//读取配置文件
SqlSession session = null ;
try {
reader = Resources.getResourceAsReader("mybatis-Config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sqlSessionFactory.openSession();
//调用直接调用配置文件
// User user = (User) session.selectOne("org.lanqiao.dao.UserMapper.selectByPrimaryKey",1);
//使用接口写法(常用)
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);
System.out.println(user.getUserName());
Assert.assertArrayEquals("测试失败!",new String[]{"张三"},new String[]{user.getUserName()});
} catch (IOException e) {
e.printStackTrace();
}
}
}
Log4J简单配置:
log4j.rootLogger=DEBUG,stdout
### console ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### mybatis ###
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=ERROR
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

本文详细介绍了如何使用MyBatis逆向工程生成代码,包括配置pom.xml、属性文件、generatorConfig.xml及mybatis-Config.xml。通过具体步骤和代码示例,展示了如何从数据库表生成对应的Java实体类、DAO接口及XML映射文件。

742

被折叠的 条评论
为什么被折叠?



