1. 程式人生 > >Mybatis-Generator自動生成程式碼——Mybatis 深入淺出(二)

Mybatis-Generator自動生成程式碼——Mybatis 深入淺出(二)

使用Mybatis-Generator ,可以自動生成Model、Dao、Mapping相關檔案

根據已建立的資料庫生成相映的檔案 ,每一個數據表可以自動生成一個對應的model(pojo類),呼叫Dao類中的方法就可以直接對資料庫進行增刪改查的操作。

1、使用方法:

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

參考:

關注我的公眾號,輕鬆瞭解和學習更多技術
這裡寫圖片描述