MyBatis Generator的详细介绍http://mybatis.github.io/generator/index.html
MyBatis Generator With Maven http://mybatis.github.io/generator/running/runningWithMaven.html
官方提供的工具源码:https://github.com/mybatis/generator/releases
前言
在自学SSM项目传智播客的《淘淘商城》时接需要使用mybatis的反向工程,根据视频教程以及参考网上搜索到的资料,自己写了一个逆向工程使用的工具项目。
《淘淘商城》视频教程链接:http://pan.baidu.com/s/1pLD5vUN 密码:g2xu
与官方提供的java项目不同,本项目经过修改基于maven创建,可以通过修改pom.xml更新依赖包的版本。
项目结构:
pox.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>yh.mybatisGenerator</groupId>
<artifactId>mybatis_generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>mybatis逆向工程工具项目</description>
<dependencies>
<!-- Oracle JDBC Driver -->
<!-- 是因为oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源 所以另外下载手动引入 <dependency>
<groupId>ojdbc</groupId> <artifactId>ojdbc</artifactId> <version>14</version>
</dependency> -->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<!-- 反向工程工具包 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- MySQL官方JDBC驱动程序 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
<!-- 工作域,驱动只有在真正工作的时候才会用到 -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- DAO框架依赖:Mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
<build>
<finalName>mybatis_generator</finalName>
<plugins>
<!--名称: java编译插件。目的:指定java编译版本,maven默认版本是1.5。 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
使用逆向工程
1.generatorConfig.xml(本项目的关键为配置文件)
(官方配置以及说明:http://mybatis.github.io/generator/configreference/xmlconfig.html)
根据自己的需要修改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>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/taotao" userId="root"
password="123">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.taotao.pojo"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.taotao.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.taotao.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="tb_content"></table>
<table schema="" tableName="tb_content_category"></table>
<table schema="" tableName="tb_item"></table>
<table schema="" tableName="tb_item_cat"></table>
<table schema="" tableName="tb_item_desc"></table>
<table schema="" tableName="tb_item_param"></table>
<table schema="" tableName="tb_item_param_item"></table>
<table schema="" tableName="tb_order"></table>
<table schema="" tableName="tb_order_item"></table>
<table schema="" tableName="tb_order_shipping"></table>
<table schema="" tableName="tb_user"></table>
</context>
</generatorConfiguration>
2:GeneratorSqlmap.java(固定内容,无需修改)
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorSqlmap {
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.mybatis反向工程
最后执行此java文件,打印日志如下。
2016-09-15 14:42:48,508 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_content"
2016-09-15 14:42:48,553 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_content"
2016-09-15 14:42:48,553 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "category_id", data type -5, in table "taotao..tb_content"
2016-09-15 14:42:48,553 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "title", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,553 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "sub_title", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,554 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "title_desc", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,554 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "url", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,554 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "pic", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,554 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "pic2", data type 12, in table "taotao..tb_content"
2016-09-15 14:42:48,554 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "content", data type -1, in table "taotao..tb_content"
2016-09-15 14:42:48,555 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_content"
2016-09-15 14:42:48,555 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_content"
2016-09-15 14:42:48,565 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_content_category"
2016-09-15 14:42:48,577 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_content_category"
2016-09-15 14:42:48,577 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "parent_id", data type -5, in table "taotao..tb_content_category"
2016-09-15 14:42:48,578 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "name", data type 12, in table "taotao..tb_content_category"
2016-09-15 14:42:48,578 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "status", data type 4, in table "taotao..tb_content_category"
2016-09-15 14:42:48,581 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "sort_order", data type 4, in table "taotao..tb_content_category"
2016-09-15 14:42:48,582 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "is_parent", data type -7, in table "taotao..tb_content_category"
2016-09-15 14:42:48,582 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_content_category"
2016-09-15 14:42:48,582 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_content_category"
2016-09-15 14:42:48,587 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "title", data type 12, in table "taotao..tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "sell_point", data type 12, in table "taotao..tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "price", data type -5, in table "taotao..tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "num", data type 4, in table "taotao..tb_item"
2016-09-15 14:42:48,598 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "barcode", data type 12, in table "taotao..tb_item"
2016-09-15 14:42:48,599 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "image", data type 12, in table "taotao..tb_item"
2016-09-15 14:42:48,599 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "cid", data type -5, in table "taotao..tb_item"
2016-09-15 14:42:48,599 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "status", data type -6, in table "taotao..tb_item"
2016-09-15 14:42:48,599 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_item"
2016-09-15 14:42:48,599 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_item"
2016-09-15 14:42:48,606 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_item_cat"
2016-09-15 14:42:48,614 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,614 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "parent_id", data type -5, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "name", data type 12, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "status", data type 4, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "sort_order", data type 4, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "is_parent", data type -7, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,615 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_item_cat"
2016-09-15 14:42:48,622 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_item_desc"
2016-09-15 14:42:48,631 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "item_id", data type -5, in table "taotao..tb_item_desc"
2016-09-15 14:42:48,631 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "item_desc", data type -1, in table "taotao..tb_item_desc"
2016-09-15 14:42:48,631 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_item_desc"
2016-09-15 14:42:48,631 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_item_desc"
2016-09-15 14:42:48,666 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_item_param"
2016-09-15 14:42:48,674 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_item_param"
2016-09-15 14:42:48,674 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "item_cat_id", data type -5, in table "taotao..tb_item_param"
2016-09-15 14:42:48,674 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "param_data", data type -1, in table "taotao..tb_item_param"
2016-09-15 14:42:48,675 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_item_param"
2016-09-15 14:42:48,675 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_item_param"
2016-09-15 14:42:48,680 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_item_param_item"
2016-09-15 14:42:48,688 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_item_param_item"
2016-09-15 14:42:48,688 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "item_id", data type -5, in table "taotao..tb_item_param_item"
2016-09-15 14:42:48,688 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "param_data", data type -1, in table "taotao..tb_item_param_item"
2016-09-15 14:42:48,688 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_item_param_item"
2016-09-15 14:42:48,688 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_item_param_item"
2016-09-15 14:42:48,691 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_order"
2016-09-15 14:42:48,700 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "order_id", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,700 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "payment", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,700 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "payment_type", data type 4, in table "taotao..tb_order"
2016-09-15 14:42:48,700 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "post_fee", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,700 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "status", data type 4, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "create_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "update_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "payment_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "consign_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "end_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "close_time", data type 93, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "shipping_name", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,701 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "shipping_code", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,702 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "user_id", data type -5, in table "taotao..tb_order"
2016-09-15 14:42:48,702 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "buyer_message", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,702 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "buyer_nick", data type 12, in table "taotao..tb_order"
2016-09-15 14:42:48,702 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "buyer_rate", data type 4, in table "taotao..tb_order"
2016-09-15 14:42:48,707 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_order_item"
2016-09-15 14:42:48,715 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type 12, in table "taotao..tb_order_item"
2016-09-15 14:42:48,715 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "item_id", data type 12, in table "taotao..tb_order_item"
2016-09-15 14:42:48,715 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "order_id", data type 12, in table "taotao..tb_order_item"
2016-09-15 14:42:48,715 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "num", data type 4, in table "taotao..tb_order_item"
2016-09-15 14:42:48,716 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "title", data type 12, in table "taotao..tb_order_item"
2016-09-15 14:42:48,716 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "price", data type -5, in table "taotao..tb_order_item"
2016-09-15 14:42:48,716 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "total_fee", data type -5, in table "taotao..tb_order_item"
2016-09-15 14:42:48,716 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "pic_path", data type 12, in table "taotao..tb_order_item"
2016-09-15 14:42:48,721 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_order_shipping"
2016-09-15 14:42:48,728 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "order_id", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,728 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_name", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,728 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_phone", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_mobile", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_state", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_city", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_district", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_address", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "receiver_zip", data type 12, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,729 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_order_shipping"
2016-09-15 14:42:48,735 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type -5, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "username", data type 12, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "password", data type 12, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "phone", data type 12, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "email", data type 12, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "created", data type 93, in table "taotao..tb_user"
2016-09-15 14:42:48,747 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "updated", data type 93, in table "taotao..tb_user"
刷新项目目录
生成了pojo数据模型,DAO接口以及Mybatis的XML映射文件(包含实现DAO接口的SQL)。
然后可以复制上面生成的文件到需要的项目中。
注意:如果想再次生成代码,必须先将已经生成的代码删除,否则会在原文件中追加。
MyBatis的Mapper接口以及Example的实例函数及详解
一、mapper接口中的方法解析
mapper接口中的函数及方法
方法 | 功能说明 |
---|---|
int countByExample(UserExample example) thorws SQLException | 按条件计数 |
int deleteByPrimaryKey(Integer id) thorws SQLException | 按主键删除 |
int deleteByExample(UserExample example) thorws SQLException | 按条件查询 |
String/Integer insert(User record) thorws SQLException | 插入数据(返回值为ID) |
User selectByPrimaryKey(Integer id) thorws SQLException | 按主键查询 |
ListselectByExample(UserExample example) thorws SQLException | 按条件查询 |
ListselectByExampleWithBLOGs(UserExample example) thorws SQLException | 按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。 |
int updateByPrimaryKey(User record) thorws SQLException | 按主键更新 |
int updateByPrimaryKeySelective(User record) thorws SQLException | 按主键更新值不为null的字段 |
int updateByExample(User record, UserExample example) thorws SQLException | 按条件更新 |
int updateByExampleSelective(User record, UserExample example) thorws SQLException | 按条件更新值不为null的字段 |
二、example实例解析
mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分
xxxExample example = new xxxExample();
Criteria criteria = new Example().createCriteria();
方法 | 说明 |
---|---|
example.setOrderByClause(“字段名 ASC”); | 添加升序排列条件,DESC为降序 |
example.setDistinct(false) | 去除重复,boolean型,true为选择不重复的记录。 |
criteria.andXxxIsNull | 添加字段xxx为null的条件 |
criteria.andXxxIsNotNull | 添加字段xxx不为null的条件 |
criteria.andXxxEqualTo(value) | 添加xxx字段等于value条件 |
criteria.andXxxNotEqualTo(value) | 添加xxx字段不等于value条件 |
criteria.andXxxGreaterThan(value) | 添加xxx字段大于value条件 |
criteria.andXxxGreaterThanOrEqualTo(value) | 添加xxx字段大于等于value条件 |
criteria.andXxxLessThan(value) | 添加xxx字段小于value条件 |
criteria.andXxxLessThanOrEqualTo(value) | 添加xxx字段小于等于value条件 |
criteria.andXxxIn(List<?>) | 添加xxx字段值在List<?>条件 |
criteria.andXxxNotIn(List<?>) | 添加xxx字段值不在List<?>条件 |
criteria.andXxxLike(“%”+value+”%”) | 添加xxx字段值为value的模糊查询条件 |
criteria.andXxxNotLike(“%”+value+”%”) | 添加xxx字段值不为value的模糊查询条件 |
criteria.andXxxBetween(value1,value2) | 添加xxx字段值在value1和value2之间条件 |
criteria.andXxxNotBetween(value1,value2) | 添加xxx字段值不在value1和value2之间条件 |
三、应用举例
1.查询
① selectByPrimaryKey()
User user = XxxMapper.selectByPrimaryKey(100); //相当于select * from user where id = 100
② selectByExample() 和 selectByExampleWithBLOGs()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
criteria.andUsernameIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = XxxMapper.selectByExample(example);
//相当于:select * from user where username = 'wyw' and username is null order by username asc,email desc
注:在iBator逆向工程生成的文件XxxExample.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。
2.插入数据
①insert()
User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("admin");
user.setPassword("admin")
user.setEmail("wyw@163.com");
XxxMapper.insert(user);
//相当于:insert into user(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','wyw@126.com');
3.更新数据
①updateByPrimaryKey()
User user =new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("wyw");
user.setPassword("wyw");
user.setEmail("wyw@163.com");
XxxMapper.updateByPrimaryKey(user);
//相当于:update user set username='wyw', password='wyw', email='wyw@163.com' where id='dsfgsdfgdsfgds'
②updateByPrimaryKeySelective()
User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相当于:update user set password='wyw' where id='dsfgsdfgdsfgds'
③ updateByExample() 和 updateByExampleSelective()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
User user = new User();
user.setPassword("wyw");
XxxMapper.updateByPrimaryKeySelective(user,example);
//相当于:update user set password='wyw' where username='admin'
updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段
4.删除数据
①deleteByPrimaryKey()
XxxMapper.deleteByPrimaryKey(1); //相当于:delete from user where id=1
②deleteByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);
//相当于:delete from user where username='admin'
5.查询数据数量
①countByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count = XxxMapper.countByExample(example);
//相当于:select count(*) from user where username='wyw'