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語句:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章