mybatis需要程序員自己編寫sql語句,mybatis官方提供逆向工程,可以針對單表自動生成mybatis執行所需要的代碼(mapper.java、mapper.xml、pojo…),可以讓程序員將更多的精力放在繁雜的業務邏輯上。
企業實際開發中,常用的逆向工程方式:由數據庫的表生成java代碼。之所以強調單表兩個字,是因爲Mybatis逆向工程生成的Mapper所進行的操作都是針對單表的,也許你可能會覺得那這就有點雞肋了,但是在大型項目中,很少有複雜的多表關聯查詢,所以作用還是很大的。
導入jar 包
我是從maven導入的,在pom文件里加入以下依賴
<!--
1.mysql連接
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!--
2.mybatis 的jar包
-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mybatis 逆向工程依賴 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
寫XML文件
配置文件可以直接下載:http://www.mybatis.org/generator/
<?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>
<!--數據庫驅動,最好不要有中文字符,不然會找不到-->
<classPathEntry location="D:\software\jar\mysql-connector-java-5.1.17.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--數據庫鏈接地址賬號密碼-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/mybatis" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model類存放位置-->
<javaModelGenerator targetPackage="com.test.bean" targetProject="./src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.test.dao" targetProject="./src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成DaoMapper類存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.test.mapper" targetProject="./src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成對應表及類名,需要記住的一點是逆向工程無法生成關聯關係,只能生成單表操作-->
<table tableName="student"
domainObjectName="Student"
></table>
<table tableName="dept"
domainObjectName="Dept"
></table>
</context>
</generatorConfiguration>
執行JAVA代碼生成Bean,DAO,Mapper
這些代碼都是固定的,直接去官網上copy就行,執行完之後就生成了,
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("E:\\code\\MyBatisTest\\src\\main\\resources\\mybatis-generator.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);
注意:最好在一個新的包裏生成,避免你新生成的類與你原來包裏的類名衝突。
下面這就是我剛剛生成的目錄,新生成的接口都是簡單的增刪改查