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文件,请下载放在当前目录下面

 

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

微信关注公众号:雄雄的小课堂,获取人脸识别源码,java和C#语言都有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core 1.1 简介

ASP.NET Core 1.1 于2016年11月16日发布。这个版本包括许多伟大的新功能以及许多错误修复和一般的增强。这个版本包含了多个新的中间件组件、针对Windows的WebListener服务器、Razor视图编译以及Azure相关的特性。要将现有项目更新到ASP.NET Core 1.1 &#xff0c;您需要执行以…

Mybatis传入参数类型为ListIntergert作为条件进行查询

Mybatis传入参数类型为List作为条件进行查询 higher2017关注 2017.02.07 10:23:16字数 130阅读 5,658 表结构&#xff1a; 表名称为constant 需求&#xff1a; 现在想查询type为2、3的所有数据&#xff08;甚至想查询type为1,2,3,4,5....,100的所有数据&#xff09;并且返回…

lombok进行有参无参构造出现的问题

查看方法 解决方法 运行成功

.NET应用迁移到.NET Core(三)从商业角度看移植过程

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下从商业角度看移植过程。 。 创建项目移植进度表 创建移植进度表时要考虑所有可能的风险&#xff0c;包括技术和商…

Spring(笔记)

简介 Spring概述 简介 Spring : 春天 —>给软件行业带来了春天 2002年&#xff0c;Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日&#xff0c;Spring框架以interface21框架为基础&#xff0c;经过重新设计&#xff0c;发布了1.0正式版。 很难想象…

mybatis报错Type interface xxx.Dao is not known to the MapperRegistry

今天在做mybatis的时候&#xff0c;遇到一个错误&#xff0c;大家看看这个错误吧&#xff1a;org.apache.ibatis.binding.BindingException: Type interface cn.mybatis_chop10_1.dao.IEmpDao is not known to the MapperRegistry. 我前找找后找找&#xff0c;就是找不出来&…

Navicat Premium 11 12 闪退

卸载有道词典 重新安装 Navicat Premium 11

java弹弹球实验报告_Java弹球游戏实验报告—chen

Java弹球游戏实验报告—chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一、实验目的2 二、需求分析2 三、实验任务2 1、设计3 2、程序要求&#xff1a;3 3、选作题&#xff1a;3 四、开发工具与平台3 五、设计…

.NET应用迁移到.NET Core(二)风险评估

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下应用迁移的风险评估。 很多移植项目超出预算或未能按时完成&#xff0c;主要是因为没有很好地管理移植过程中可能…

.NET应用迁移到.NET Core(一)

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下应用迁移的一个过程。 把一个运行在某个操作系统和硬件结构上的软件&#xff0c;在另一个操作系统和硬件结构上重…

WIN10的IE错误代码inet_e_resource_not_found解决办法

WIN10的IE错误代码inet_e_resource_not_found解决办法 原创 候鸟307183846 最后发布于2019-08-27 13:31:54 阅读数 2413 收藏 展开 解决方案&#xff1a; 1、在Internet选项里&#xff0c;点《连接》标签&#xff0c;按下《局域网设置》按钮&#xff0c;在对话框里&#…

404问题

、配置Tomcat 启动测试&#xff01; 可能遇到的问题&#xff1a;访问出现404&#xff0c;排查步骤&#xff1a; 查看控制台输出&#xff0c;看一下是不是缺少了什么jar包。如果jar包存在&#xff0c;显示无法输出&#xff0c;就在IDEA的项目发布中&#xff0c;添加lib依赖&…

@Valid注解的使用---SpringMvc中的校验框架@valid和@validation的概念及相关使用

https://www.cnblogs.com/charlypage/p/9385146.html 第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析 关于spring中的validate注解后台校验的解析 在后台开发过程中&#xff0c;对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null&…

java中的AIO

转载自 java中的AIO简介jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2&#xff0c;或称为AIO(Asynchronous I/O)。AIO最大的一个特性就是异步能力&#xff0c;这种能力对socket与文件I/O都起作用。AIO其实是一种在读写操作结束之前允许进行其他操作的I/O…

Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)

最近在用Mybatis做项目的时候遇到了不少问题&#xff0c;今天我就在这和大家分享一下&#xff0c;稀稀拉拉的研究了两天&#xff0c;终于搞好了&#xff01; 开发人员&#xff1a;1111 开发软件&#xff1a;Myeclipse 用到的框架技术&#xff1a;Mybatis 数据库&#xff1a;MyS…

细说ASP.NET Core静态文件的缓存方式

一、前言 我们在优化Web服务的时候&#xff0c;对于静态的资源文件&#xff0c;通常都是通过客户端缓存、服务器缓存、CDN缓存&#xff0c;这三种方式来缓解客户端对于Web服务器的连接请求压力的。 本文指在这三个方面&#xff0c;在ASP.NET Core中静态文件的实现过程和使用方法…

金田项目的总结

一个搜索框对手机、姓名、内容进行搜索 <select id"list" parameterType"java.lang.String" resultMap"BaseResultMap">select<include refid"Base_Column_List"/>from user_backstagewhere 11 and is_deletedN<if te…

文章中文字乱码问题解决办法集合

乱码问题 测试步骤&#xff1a; 1、我们可以在首页编写一个提交的表单 <form action"/e/t" method"post"><input type"text" name"name"><input type"submit"> </form>2、后台编写对应的处理类 …

.NET开源两年之后社区贡献如何

微软在 2014 年开源了 .NET 核心框架&#xff0c;欢迎社区贡献代码。2015 年&#xff0c;一位 .NET 开发者分析了开源一年之后的社区贡献。2016 年年底又到了&#xff0c;这位开发者再次发表文章&#xff0c;分析了 .NET 开源两年之后的情况。 这一次他分析了 15 个 .NET 开源项…

java把控件跑挂了_Java代码动态修改 ConstraintLayout 内控件布局的辅助类

##上图ConstraintUtil.javaimport android.support.annotation.IdRes;import android.support.constraint.ConstraintLayout;import android.support.constraint.ConstraintSet;import android.transition.TransitionManager;/*** Created by xiaolei on 2017/9/8.*/public cla…