Mybatis-Generator自動生成程式碼——Mybatis 深入淺出(二)
阿新 • • 發佈:2019-01-09
使用Mybatis-Generator ,可以自動生成Model、Dao、Mapping相關檔案
根據已建立的資料庫生成相映的檔案 ,每一個數據表可以自動生成一個對應的model(pojo類),呼叫Dao類中的方法就可以直接對資料庫進行增刪改查的操作。
1、使用方法:
1.1、需要用到的檔案
- 連線資料庫的驅動jar包,由於我使用的是Mysql資料庫,準備一個連線mysql資料庫的驅動jar包
上面需要的這兩個包,也可以通過maven依賴的方式去自動下載
<dependency>
<groupId>mysql</groupId >
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId >
<version>1.3.2</version>
<configuration>
<!--generatorConfig.xml檔案的相對於專案根目錄的路徑-->
<configurationFile>generatorConfig.xml</configurationFile>
<verbose>true</verbose >
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
1.2、generatorConfig.xml
自動生成程式碼,主要就是寫這個配置檔案,指定連線資料庫的jar包位置,指定資料庫的一些基本內容,指定生成檔案的路徑等
<?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="mysql-connector-java-5.0.8-bin.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/mymessages" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model類存放位置-->
<javaModelGenerator targetPackage="lcw.model" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成Mapping對映檔案存放位置-->
<sqlMapGenerator targetPackage="lcw.mapping" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao類存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="lcw.dao" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成對應表及類名-->
<table tableName="message" domainObjectName="Messgae" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
1.3、生成Model、Dao、Mapping相關檔案
如果在1.1中在maven中配置自動下載jar包,則執行package階段就可以,自動生成。否則需要手動去生成相應檔案
生成語句檔案:
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
在
2、Mybatis Generator配置詳解
3、常見的錯誤
錯誤一:
報錯:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class path resource [spring-mybatis.xml]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': : Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource';
原因:因為mybatis generator 是根據已建立的資料庫資料表生成相映的,出現上面這個錯誤一般是沒有配置資料來源,或者登陸名或密碼錯誤
解決:
在yml配置檔案中,新增下面配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 密碼
url: jdbc:mysql://資料庫地址:埠/資料庫?characterEncoding=UTF-8&useSSL=false
參考:
關注我的公眾號,輕鬆瞭解和學習更多技術