Mybatis 學習(七)——逆向工程

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);

注意:最好在一個新的包裏生成,避免你新生成的類與你原來包裏的類名衝突。
下面這就是我剛剛生成的目錄,新生成的接口都是簡單的增刪改查
在這裏插入圖片描述

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