天天看點

mybatis--generator自動生成代碼工具使用步驟詳解

自動生成代碼工具:mybatis-generator

Mybatis-Generator是一個可以用來生成Mybatis dao,entity,Mapper的檔案的一個工具,在項目中可以省去我們很多重複的工作。

1、在main/resource中加入配置檔案 generatorConifg.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="MySQLTables" targetRuntime="MyBatis3">
	<!-- 資料庫驅動 使用者名 密碼  資料庫名 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://127.0.0.1/cars" userId="root" password="a">
		</jdbcConnection>
		<!-- 實體類包名   targetPackage指定生成在那個包下  targetProject指定在那個目錄下生成該包-->
		<javaModelGenerator targetPackage="com.yc.cars.bean"
			targetProject="src/main/java">
		</javaModelGenerator>
		<!-- Dao類包名 -->
		<sqlMapGenerator targetPackage="com.yc.cars.dao"
			targetProject="src/main/java">
		</sqlMapGenerator>

		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.yc.cars.dao" targetProject="src/main/java">
		</javaClientGenerator>

 <!--        column告訴jdbc哪一個字段是自增列,儲存以後mysql自動生成在傳回這個自增列的值  -->
		<table tableName="car">
			<generatedKey column="id" sqlStatement="mysql" />
		</table>
		<table tableName="driver">
			<generatedKey column="id" sqlStatement="mysql" />
		</table>
		<table tableName="user_info">
			<generatedKey column="id" sqlStatement="mysql" />
		</table>
		<table tableName="order">
			<generatedKey column="id" sqlStatement="mysql" />
		</table>
	</context>
</generatorConfiguration>
           

注需要修改的是資料庫驅動類、資料庫表名、資料庫使用者名、資料庫密碼、各類檔案需要生成在哪個目錄(targetProject)下和在該目錄下的哪個包(targetPackage)

2、在pom.xml中配置generator插件 和加入mysql-connector-java依賴

<plugins>
    	 <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.3.7</version>
            <dependencies>
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
            </dependencies>
             </plugin>
    		</plugins>
           

3、運作指令:

在工程右鍵-》Run as-》Maven build-》輸入指令:mybatis-generator:generate

4、通過自動生成的代碼無需手動書寫資料庫事務語句

新版本自動生成的類有Mapper和Example,Example類用于封裝定義資料庫語句的類

具體用法:這裡用到是模拟登陸功能

測試類:

@RunWith(SpringRunner.class)
@ContextConfiguration("/beans.xml")
public class UserInfoMapperTest {

@Resource
private UserInfoMapper umapper;

@Test
public void test()
{
	//查詢所有
	/*umapper.selectByPrimaryKey(1);
	umapper.selectByExample(null);*/
	
	//查詢指定使用者名
	UserInfoExample uie=new UserInfoExample();
	
	uie.createCriteria().andNameEqualTo("張三");
	umapper.selectByExample(uie);
	
	uie=new UserInfoExample();
	Criteria c=uie.createCriteria();
	c.andNameLike("%三%");
	c.andPwdEqualTo("123");
	c.andEmailLike("%123%");
	umapper.selectByExample(uie);
	
}
           

}

5、實作

1、建立相應的Example執行個體對象UserInfoExample example=new UserInfoExample();

2、由example調用createCriteria()建立Criteria執行個體 Criteria c=uie.createCriteria();

Criteria可以調用多種為實體類屬性定義的條件方法 :

如 c.andNameLike("%三%");

c.andPwdEqualTo(“123”);

c.andEmailLike("%123%");

3、Criteria執行個體調用之後,再由UserInfoMapper調用Example的方法,此處要以example為方法參數

如:umapper.selectByExample(uie); 通過uie定義的條件查詢

4、注:Example類中帶Selecttive方法表示隻更新非空字段

updateByPrimaryKeySelective會對字段進行判斷再更新(如果為Null就忽略更新),如果你隻想更新某一字段,可以用這個方法。

updateByPrimaryKey對你注入的字段全部更新,如果為字段不更新,資料庫的值就為null。sql語句:

繼續閱讀