mybatis反向生成实体类、dao层以及映射文件

转自     https://blog.csdn.net/qq_34137397/article/details/61663164

         在做项目的时候,我们不得不写底层的一些繁琐代码,比如说实体类、dao层之类的,既浪费时间又费事,最主要的是还没效率,kuangkuangkuang的写半天终于写完了,到运行的时候dao层的代码居然还报错!!这要闹哪样啊,Hibernate就给咱们提供了反向快速生成实体类以及映射文件和配置文件,程序员大部门的时间都放在了项目的业务上,这样更能高效率的开发!Hibernate的反向生成的具体我在这里也就不多说了,网上太多太多了,请大家自行查找,当然既然有反向那就有正向,于是,在不久的之前我写了一片博文就是关于hibernate正向生成数据库的全过程:

     Hibernate多对多、正向工程创建数据表——访问温馨提示             欢迎大家进去交流学习!

      nice,咱们现在不如正题,今天我们不说hibernate,也不讲Java,咱们具体讲一下Oracle+mybatis的反向生成,大家请往下看:

       既然是反向生成,那么肯定不能少数据表,那现在就在oracle里面创建一个数据表:

  1. create table dept (
  2. deptno number( 11),
  3. dname varchar2 ( 150),
  4. loc varchar2 ( 150)
  5. );

创建完成,插入几条测试数据:

  1. insert into DEPT (DEPTNO, DNAME, LOC)
  2. values ( 90, '开发部1', '山西吕梁');
  3. insert into DEPT (DEPTNO, DNAME, LOC)
  4. values ( 12, 'myName', 'myLocation');
  5. insert into DEPT (DEPTNO, DNAME, LOC)
  6. values ( 91, '开发部2', '山西吕梁');
  7. insert into DEPT (DEPTNO, DNAME, LOC)
  8. values ( 72, 'bdqn', 'jinan');
  9. insert into DEPT (DEPTNO, DNAME, LOC)
  10. values ( 70, 'bdqn', 'jinan');
  11. insert into DEPT (DEPTNO, DNAME, LOC)
  12. values ( 10, 'ACCOUNTING', 'NEW YORK');
  13. insert into DEPT (DEPTNO, DNAME, LOC)
  14. values ( 20, 'RESEARCH', 'DALLAS');
  15. insert into DEPT (DEPTNO, DNAME, LOC)
  16. values ( 30, 'SALES', 'CHICAGO');
  17. commit();

插入完成!!!

现在数据表已经准备好了,就可以开始生成了!

1.先在E盘下面新建一个文件夹(其他盘也可以,没规定)


2.在完成1的前提下,请大家再去别的地方搞一个oracle的jar包和mybatis-generator-core-1.3.2.jar的jar包放在这个目录下面(放在根目录下面)

mybatis-generator-core-1.3.2.jar下载地址:这里


3.继续在这个刚刚创建的文件夹里面新建一个名为src的文件夹


4.接下来大家在新建一个.xml的文件,名字是generatorConfig.xml(名字尽量和我的一样)


5.接着我们写这个.xml文件里面的内容:

     (1)头部自然不能少也不能错

  1. <!DOCTYPE generatorConfiguration
  2. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

    (2)头部有了咱们就开始配置

        先写根节点:<generatorConfiguration>    </generatorConfiguration>   
   (3)有了根节点之后我们下面配置数据库(以oracle数据库为例):

  1. <!-- oracle的jar包文件路径 -->
  2. <classPathEntry location="ojdbc6.jar"/>
  3. <context id="DB2Tables" targetRuntime="MyBatis3">
  4. <commentGenerator>
  5. <!-- 是否取消注释 -->
  6. <property name="suppressDate" value="true"/>
  7. <!-- 是否生成注释代时间戳-->
  8. <property name="suppressAllComments" value="true"/>
  9. </commentGenerator>
  10. <!-- 链接配置 -->
  11.         <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:orcl" userId="pro" password="pro">  
  12.         </jdbcConnection>
       注意:上面的这一段一定要放在<generatorConfiguration>   节点里面

    (4)继续配置类型之间的转换:

  1. <javaTypeResolver>
  2. <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
  3. <property name="forceBigDecimals" value="false"/>
  4. </javaTypeResolver>
     (5)配置生成的实体类,含包名、路径,cn.bdqn.mybatis 这个路径可以自动生成,但是你得要有必须有src这个路径,没有的话创建一个

  1. <javaModelGenerator targetPackage="cn.bdqn.mybatis" targetProject="src">
  2. <!-- 是否在当前路径下新加一层schema,eg:fase路径cn.bdqn.mybatis, true:cn.bdqn.mybatis.[schemaName] -->
  3. <property name="enableSubPackages" value="true"/>
  4. <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
  5. <property name="trimStrings" value="false"/>
  6. </javaModelGenerator>

     (6)生成xml文件的路径,这个路径可以自动生成,但是必须有src这个路径(没有的话创建一个)

  1. <sqlMapGenerator targetPackage="cn.bdqn.mybatis.dao" targetProject="src">
  2. <property name="enableSubPackages" value="true"/>
  3. </sqlMapGenerator>

      (7)生成Dao类的路径,这个路径可以自动生成,但是必须有src这个路径(没有的话创建一个)


  1. <javaClientGenerator type="XMLMAPPER" targetPackage="cn.bdqn.mybatis.dao" targetProject="src">
  2. <property name="enableSubPackages" value="true"/>
  3. </javaClientGenerator>

      (8)生成对应表及类名,你想生成几个咱就给你生成几个,听你的,前提是你得先告诉计算机你要生成几个!

table tableName="dept" domainObjectName="Dept" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

     其中:tableName:表名 

                domainObjectName:实体类名

      (9)结束掉,配置就OK了

      </context>
</generatorConfiguration>

     (10)配置是配置好了,怎么运行呢?两种:

                  第一:打开dos命令,定位到:e:mybatis目录下面之后,执行java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite     输入之后回车

                     第二:在你的当前目录下(不是src目录下),创建;一个.bat文件,里面内容是cmd.exe,运行这个.bat文件之后你会发现她自动打开了cmd,并且自动定位到了当期目录下面了,然后你输入:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite  按下回车,出现:

            

    就证明,骚年,你成功了!

     否则,出现:


       证明你出错了,缺少mybatis-generator-core-1.3.2.jar文件,请下载放在当前目录下面




一、前言
之前写过一篇文章是关于MyBatis的增删改查的
点击链接可以进入之前比较 low 版本的基础CRUD
但是实际开发并不太需要写dao层、实体层代码的,主要就是使用了MyBatis提供的架包
这里写图片描述
点击进入 mybatis逆向工程之生成文件解释
下面给出使用逆向工程的全部过程

二、演示和代码

①创建一个java工程
这里写图片描述
给工程起个名字,然后直接点击 finish
这里写图片描述

②创建一些包(也可以不用创建,这里为了演示就创建了,需要的文件就是mbg.xml逆向工程配置文件测试类、而jdbc数据配置文件也可以并入代码中)
这里写图片描述

dbconfig.xml是数据库的基本信息,这里使用MySQL数据库,具体要配置的内容看注释

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true
jdbc.username=root
jdbc.password=123
  • 1
  • 2
  • 3
  • 4

mbg.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>

    <!-- 
        targetRuntime="MyBatis3Simple":生成简单版的CRUD
        MyBatis3:豪华版

     -->
  <context id="DB2Tables" targetRuntime="MyBatis3">
    <!-- jdbcConnection:指定如何连接到目标数据库 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true"
        userId="root"
        password="123">
    </jdbcConnection>

    <!--  -->
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- javaModelGenerator:指定javaBean的生成策略 
    targetPackage="test.model":目标包名
    targetProject="\MBGTestProject\src":目标工程
    -->
    <javaModelGenerator targetPackage="com.cun.mybatis.bean" 
            targetProject=".\src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- sqlMapGenerator:sql映射生成策略: -->
    <sqlMapGenerator targetPackage="com.cun.mybatis.xml"  
        targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- javaClientGenerator:指定mapper接口所在的位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.cun.mybatis.dao"  
        targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
    <table tableName="user" domainObjectName="User"></table>
  </context>
</generatorConfiguration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

③在测试类里边写一个方法准备运行
这里写图片描述

package com.cun.mybatis.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class MyTest {

    @Test
    public void testMbg() throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("mbg.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);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

④运行完后,刷新项目,会发现包中“充实了”
这里写图片描述

至此,逆向工程完成

版权声明:转载请声明出处 https://blog.csdn.net/larger5/article/details/78996336

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值