MyBatis Generator逆向工程

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更新依赖包的版本。

项目结构:

143258_ijao_2507499.png

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"

刷新项目目录

144057_5jvq_2507499.png

生成了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'

转载于:https://my.oschina.net/iyinghui/blog/747144

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值