MyBatis学习总结(9)——使用MyBatis Generator自动创建代码

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。

           使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件,只需要下几个jar包即可,把它们放在一个目录下面。


       生成代码需要的文件和jar包:


(上图文件下载地址:http://download.csdn.net/detail/u012909091/7206091)

       其中有mybatis框架的jar包,数据库驱动程序jar包以及MyBatis生成器jar包。其中的generatorConfig.xml是需要我们来配置的文件,配置如下:


[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <!DOCTYPE generatorConfiguration    
  3.   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    
  4.   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">    
  5. <generatorConfiguration>    
  6. <!-- 数据库驱动-->    
  7.     <classPathEntry  location="mysql-connector-java-5.1.25-bin.jar"/>    
  8.     <context id="DB2Tables"  targetRuntime="MyBatis3">    
  9.         <commentGenerator>    
  10.             <property name="suppressDate" value="true"/>    
  11.             <!-- 是否去除自动生成的注释 true:是 : false:否 -->    
  12.             <property name="suppressAllComments" value="true"/>    
  13.         </commentGenerator>    
  14.         <!--数据库链接URL,用户名、密码 -->    
  15.         <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://125.221.1.1/db_124" userId="dem" password="dem">    
  16.         </jdbcConnection>    
  17.         <javaTypeResolver>    
  18.             <property name="forceBigDecimals" value="false"/>    
  19.         </javaTypeResolver>    
  20.         <!-- 生成模型的包名和位置-->    
  21.         <javaModelGenerator targetPackage="test.domain" targetProject="src">    
  22.             <property name="enableSubPackages" value="true"/>    
  23.             <property name="trimStrings" value="true"/>    
  24.         </javaModelGenerator>    
  25.         <!-- 生成映射文件的包名和位置-->    
  26.         <sqlMapGenerator targetPackage="test.mapping" targetProject="src">    
  27.             <property name="enableSubPackages" value="true"/>    
  28.         </sqlMapGenerator>    
  29.         <!-- 生成DAO的包名和位置-->    
  30.         <javaClientGenerator type="XMLMAPPER" targetPackage="test.IDao" targetProject="src">    
  31.             <property name="enableSubPackages" value="true"/>    
  32.         </javaClientGenerator>    
  33.         <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->    
  34.         <table tableName="user_info_t" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
  35.     </context>    
  36. </generatorConfiguration>    


       当以上这些完成之后,只需要打开控制台,进入lib目录下,执行脚本:

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

       即可。


      这样在生成之后,就可以在src目录下找到相应的文件夹,每个表格都会对应三个文件(实体类、接口、配置文件)。

转载于:https://my.oschina.net/zhanghaiyang/blog/594900

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

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

相关文章

[BZOJ2125]最短路(圆方树DP)

题意&#xff1a;仙人掌图最短路。 算法&#xff1a;圆方树DP&#xff0c;$O(n\log nQ\log n)$ 首先建出仙人掌圆方树&#xff08;与点双圆方树的区别在于直接连割边&#xff0c;也就是存在圆圆边&#xff09;&#xff0c;然后考虑点u-v的最短路径&#xff0c;显然就是&#xf…

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结 教材学习内容总结 1、二叉查找树的定义、性质2、向二叉查找树中添加元素的方法3、在二叉查找树中删除元素的方法4、旋转的定义、方法、意义 教材学习中的问题和解决过程问题1&#xff1a;我在17章中看到这么一句话&a…

ES6模块的转码

浏览器目前还不支持ES6模块,为了实现立刻使用,我们可以将其转为ES5的写法.除了Babel可以用来转码,还有以下两个方法也可以用来转码: ES6 moudule transpilerSystemJS ES6 moudule transpiler是square公司开源的一个转码器,可以将ES6模块转为CommonJS模块或AMD模块,从而在浏览器…

Java基础学习总结(22)——异常处理

2019独角兽企业重金招聘Python工程师标准>>> 一、异常的概念 异常指的是运行期出现的错误&#xff0c;也就是当程序开始执行以后执行期出现的错误。出现错误时观察错误的名字和行号最为重要。 1 package cn.javastudy.summary;2 3 public class TestEx{4 5 …

XAML中格式化日期

要求被格式化数据的类型是DateTime StringFormatyyyy-MM-dd StringFormat{}{0:yyyy-MM-dd}转载于:https://www.cnblogs.com/changbaishan/p/9144584.html

130242014045 林承晖 第2次实验

软件体系结构的第二次实验&#xff08;解释器风格与管道过滤器风格&#xff09; 一、实验目的 1&#xff0e;熟悉体系结构的风格的概念 2&#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件&#xff1a; 软件&#xff1a;P…

AnularJS1事件

在Web应用的组件是松耦合的情况下&#xff0c;比如需要用户验证然后处理授权&#xff0c;即时的通信不总是可行的&#xff0c;因为组件没有耦合在一起。 例如&#xff0c;如果后端对一个请求返回了状态码401&#xff08;表明一个未经授权的请求&#xff09;&#xff0c;我们期望…

Java基础学习总结(8)——super关键字

2019独角兽企业重金招聘Python工程师标准>>> 一、super关键字 在JAVA类中使用super来引用父类的成分&#xff0c;用this来引用当前对象&#xff0c;如果一个类从另外一个类继承&#xff0c;我们new这个子类的实例对象的时候&#xff0c;这个子类对象里面会有一个父类…

conda镜像

转自https://blog.csdn.net/guilutian0541/article/details/81004769 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --set show…

Java基础学习总结(17)——线程

2019独角兽企业重金招聘Python工程师标准>>> 一、线程的基本概念 线程理解&#xff1a;线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程&#xff0c;main()叫做主分支&#xff0c;也叫主线程。 程只是一个静态的概念&#xff0c;机器上的一个.class文件…

(转)MySQL自带的性能压力测试工具mysqlslap详解

mysqlslap 是 Mysql 自带的压力测试工具&#xff0c;可以模拟出大量客户端同时操作数据库的情况&#xff0c;通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 例如我们拿到了一台服务器&#xff0c;准备做为数据库服务器&#x…

node.js HelloWord

创建 server.js var http require("http"); http.createServer(function(req,res){ //设置请求头的编码格式 res.writeHead(200,{Content-Type:text/html;charsetutf-8}); //设置网页的编码格式&#xff08;防止中文乱码&#xff09; res.write("<head>&…

JavaScript --- this

介绍: this:引用环境执行的环境对象arguments:一个类数组对象,它包含传入函数的所以参数callee:arguments对象的一个属性,该属性是一个指针,指向拥有arguments对象的函数caller:保存着调用当前函数的函数引用apply()方法:第一个参数是作用域&#xff0c;第二个参数是Array实例…

LeetCode Subarray Sum Equals K

原题链接在这里&#xff1a;https://leetcode.com/problems/subarray-sum-equals-k/description/ 题目&#xff1a; Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k. Example 1: Input:nums …

水木告白工作室:Java从零入门之模仿头条资讯(一)

总体设计 一 &#xff1a;Java语言基础 二 &#xff1a;Spring入门&#xff0c;模板语法和渲染 三 &#xff1a;数据库交互iBatis集成 四&#xff1a; 用户注册 登陆 管理 五&#xff1a; 资讯发布 图片上传 资讯首页 六&#xff1a; 评论中心 站内信 七&#xff1a; Redis入门…

架构师不可不知的十大可扩展架构

2019独角兽企业重金招聘Python工程师标准>>> 可扩展性正是如今软件设计领域最值得优先考虑的要素。然而&#xff0c;计算机科学家们还无法了解一套单独的架构如何才能扩展至各类应用环境当中。相反&#xff0c;我们在数量繁多的方案中所设计出的可扩展性架构&#x…

Winform开发框架中工作流模块的业务表单开发

在我们开发工作流的时候&#xff0c;往往需要设计到具体业务表单信息的编辑&#xff0c;有些是采用动态编辑的&#xff0c;有些则是在开发过程中处理的&#xff0c;各有各的优点&#xff0c;动态编辑的则方便维护各种各样的表单&#xff0c;但是数据的绑定及处理则比较麻烦&…

JavaScript --- 跨浏览器的事件处理程序

var EventUtil {addHandler: function(element, type, handler) { // 添加事件处理程序if (element.addEventListener) { // DOM2级事件处理程序element.addEventListener (type, handler, false) ;} else if (element.attachEvent) { // IE事件处理程序element.attachEve…

RabbitMQ学习总结(2)——安装、配置与监控

2019独角兽企业重金招聘Python工程师标准>>> 一、安装 1、安装Erlang 1&#xff09;系统编译环境&#xff08;这里采用linux/unix 环境&#xff09; ① 安装环境 虚拟机&#xff1a;VMware Workstation 10.0.1 build Linux系统&#xff1a;CentOS6.5 rabbitMQ官网下…

nginx针对某个url限制ip访问,常用于后台访问限制

nginx针对某个url限制ip访问&#xff0c;常用于后台访问限制 假如我的站点后台地址为&#xff1a; http://www.abc.net/admin.php 那么我想限制只有个别ip可以访问后台&#xff0c;那么需要在配置文件中增加&#xff1a;location ~ .*admin.* {allow 1.1.1.1;allow 12.12.12.0/…