zoukankan      html  css  js  c++  java
  • mybatis反向生成实体类、dao层以及映射文件



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

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

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

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

    create table dept (  
            deptno number(11),  
            dname varchar2 (150),  
            loc varchar2 (150)  
        );

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

    insert into DEPT (DEPTNO, DNAME, LOC)  
        values (90, '开发部1', '山西吕梁');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (12, 'myName', 'myLocation');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (91, '开发部2', '山西吕梁');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (72, 'bdqn', 'jinan');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (70, 'bdqn', 'jinan');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (10, 'ACCOUNTING', 'NEW YORK');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (20, 'RESEARCH', 'DALLAS');  
        insert into DEPT (DEPTNO, DNAME, LOC)  
        values (30, 'SALES', 'CHICAGO');   
        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)头部自然不能少也不能错

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

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

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

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

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

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

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

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

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

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


    <javaClientGenerator type="XMLMAPPER" targetPackage="cn.bdqn.mybatis.dao" targetProject="src">  
                <property name="enableSubPackages" value="true"/>  
            </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文件,请下载放在当前目录下面

    喜欢的点个赞,不喜欢的勿喷!评论区大神们评论区多多指教,咱们评论区见!!


  • 相关阅读:
    yum安装报错“rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1e5e0159”
    EM64T和64位是不是一个概念啊?他们有什么区别啊,怎么区分啊?
    Can't load IA 32-bit .dll on a AMD 64-bit platform
    中间件——Oracle Fusion Middleware
    Does Windows have a limit of 2000 threads per process?
    java8 Lambda Stream操作list,map
    Mybatis优雅存取json字段的解决方案
    网站服务器架构部署方案发展
    springboot flowable Cause: org.xml.sax.SAXParseException; lineNumber: 25; columnNumber: 14; 元素类型为 "include" 的内容必须匹配 "EMPTY"
    java.lang.NoClassDefFoundError: javax/el/ELManager
  • 原文地址:https://www.cnblogs.com/a1111/p/12816331.html
Copyright © 2011-2022 走看看