使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件

转载自  使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件

Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。

1、相关文件

关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases

由于我使用的是Mysql数据库,这里需要再准备一个连接mysql数据库的驱动jar包

以下是相关文件截图:

 

和Hibernate逆向生成一样,这里也需要一个配置文件:

generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!--数据库驱动--><classPathEntry    location="mysql-connector-java-5.0.8-bin.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/mymessages" userId="root" password="root"></jdbcConnection><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!--生成Model类存放位置--><javaModelGenerator targetPackage="lcw.model" targetProject="src"><property name="enableSubPackages" value="true"/><property name="trimStrings" value="true"/></javaModelGenerator><!--生成映射文件存放位置--><sqlMapGenerator targetPackage="lcw.mapping" targetProject="src"><property name="enableSubPackages" value="true"/></sqlMapGenerator><!--生成Dao类存放位置--><javaClientGenerator type="XMLMAPPER" targetPackage="lcw.dao" targetProject="src"><property name="enableSubPackages" value="true"/></javaClientGenerator><!--生成对应表及类名--><table tableName="message" domainObjectName="Messgae" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context>
</generatorConfiguration>

需要修改文件配置的地方我都已经把注释标注出来了,这里的相关路径(如数据库驱动包,生成对应的相关文件位置可以自定义)不能带有中文。

上面配置文件中的:

<table tableName="message" domainObjectName="Messgae" enableCountByExample="false" 
enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" 
selectByExampleQueryId="false"></table>

tableName和domainObjectName为必选项,分别代表数据库表名和生成的实体类名,其余的可以自定义去选择(一般情况下均为false)。

生成语句文件:

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

 

2、使用方法

在该目录按住Shift键,右键鼠标选择"在此处打开命令窗口",复制粘贴生成语句的文件代码即可。

看下效果图:

首先这个是我的数据库表

 

 

 

生成相关代码:

Message.java

package lcw.model;public class Messgae {private Integer id;private String title;private String describe;private String content;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title == null ? null : title.trim();}public String getDescribe() {return describe;}public void setDescribe(String describe) {this.describe = describe == null ? null : describe.trim();}public String getContent() {return content;}public void setContent(String content) {this.content = content == null ? null : content.trim();}
}

MessgaeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="lcw.dao.MessgaeMapper" ><resultMap id="BaseResultMap" type="lcw.model.Messgae" ><id column="id" property="id" jdbcType="INTEGER" /><result column="title" property="title" jdbcType="VARCHAR" /><result column="describe" property="describe" jdbcType="VARCHAR" /><result column="content" property="content" jdbcType="VARCHAR" /></resultMap><sql id="Base_Column_List" >id, title, describe, content</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >select <include refid="Base_Column_List" />from messagewhere id = #{id,jdbcType=INTEGER}</select><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >delete from messagewhere id = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="lcw.model.Messgae" >insert into message (id, title, describe, content)values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{describe,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR})</insert><insert id="insertSelective" parameterType="lcw.model.Messgae" >insert into message<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="title != null" >title,</if><if test="describe != null" >describe,</if><if test="content != null" >content,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" >#{id,jdbcType=INTEGER},</if><if test="title != null" >#{title,jdbcType=VARCHAR},</if><if test="describe != null" >#{describe,jdbcType=VARCHAR},</if><if test="content != null" >#{content,jdbcType=VARCHAR},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="lcw.model.Messgae" >update message<set ><if test="title != null" >title = #{title,jdbcType=VARCHAR},</if><if test="describe != null" >describe = #{describe,jdbcType=VARCHAR},</if><if test="content != null" >content = #{content,jdbcType=VARCHAR},</if></set>where id = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="lcw.model.Messgae" >update messageset title = #{title,jdbcType=VARCHAR},describe = #{describe,jdbcType=VARCHAR},content = #{content,jdbcType=VARCHAR}where id = #{id,jdbcType=INTEGER}</update>
</mapper>

MessgaeMapper.java

package lcw.dao;import lcw.model.Messgae;public interface MessgaeMapper {int deleteByPrimaryKey(Integer id);int insert(Messgae record);int insertSelective(Messgae record);Messgae selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(Messgae record);int updateByPrimaryKey(Messgae record);
}

 

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

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

相关文章

android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...

招募时间&#xff1a;5月10日~5月17日测试开始时间&#xff1a;预计5月下旬或6月上旬招募(体验)要求&#xff1a;1、测试期间有较长时间可投入游戏体验&#xff1b;2、能够积极反馈和表达自己的游戏体验感受&#xff1b;3、需提前完成招募问卷(最终是否获取资格需筛选后确认)。…

ASP.NET Core MVC 源码学习:详解 Action 的匹配

前言 在 上一篇 文章中&#xff0c;我们已经学习了 ASP.NET Core MVC 的启动流程&#xff0c;那么 MVC 在启动了之后&#xff0c;当请求到达过来的时候&#xff0c;它是怎么样处理的呢&#xff1f; 又是怎么样把我们的请求准确的传达到我们的 Action 上呢&#xff1f; 那么&am…

win10偶尔打不开开始菜单(按win键和点击开始菜单都没反应)

像我这种桌面上一个图标都没有的。习惯把所有的应用程序放在开始菜单里面&#xff0c;但是……最近发现点击开始菜单或者按win键的时候召唤不出来开始菜单&#xff0c;怎么都出不来&#xff0c;怎么办&#xff1f;&#xff1f;&#xff1f;难道只有重启电脑来解决吗&#xff1f…

Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题

转载自 Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题 使用Mybatis的时候&#xff0c;有些时候能输出&#xff08;主要是指sql&#xff0c;参数&#xff0c;结果&#xff09;日志。有些时候就不能。 无法输出日志的时候&#xff0c;无论怎么配置log4j&#xff0c;…

2019蓝桥杯省赛---java---C---9(等差数列)

题目描述 代码实现 package TEST;import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int nscanner.nextInt();int[] arrnew int[n];for (int i 0; i < n; i) {arr…

Win10 Bash\/WSL调试Linux环境下的.NET Core应用程序

一、简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter&#xff0c;我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。 在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统&#xff08;Bash/WSL&#xff09…

公众号新上线微信小游戏(疯狂猜图)

为了活跃公众号&#xff0c;于2018.09.29推出一款小游戏《疯狂猜图》&#xff0c;可以赢大奖哦&#xff0c;那么小游戏怎么玩呢&#xff1f;关注公众号的用户只需回复“小游戏”即可弹出游戏链接&#xff0c;点击进入就可以啦~~目前已经有126人参与&#xff0c;期待您的参与&am…

android输入时背景颜色,Button根据EditText输入状态改变背景颜色

需求Button随EditText输入状态改变颜色有3个不同颜色状态&#xff0c;EditText未输入时&#xff0c;Button处于不可点击状态EditText输入时&#xff0c;Button处于高亮状态EditText输入且用户按下按钮&#xff0c;Button --> Pressed状态效果如下&#xff1a;演示图片EditTe…

小和问题

题目描述 思路分析 代码实现 package class02;import java.util.Arrays; import java.util.concurrent.locks.ReentrantLock;/*** 创建人 wdl* 创建时间 2021/4/13* 描述*/ public class Demo02SmallSum {public static int mergeSort(int[] arr){if(arrnull|| arr.length<…

移动用户免费领取15G流量(秒到)

爱刷抖音、头条、火山小视频、西瓜视频的福利来啦&#xff0c;移动用户15G流量免费领取&#xff01;&#xff01;&#xff01;是的&#xff0c;免费领取&#xff01;&#xff01;&#xff01; 我们来看看领取方式&#xff1a; 1.去应用中心下载“今日头条APP” 2.然后打开头…

深入浅出数据库索引原理

前段时间&#xff0c;公司一个新上线的网站出现页面响应速度缓慢的问题&#xff0c; 一位负责这个项目的但并不是搞技术的妹子找到我&#xff0c;让我想办法提升网站的访问速度 &#xff0c;因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题&#xff0c;假装思索了…

2017蓝桥杯省赛---java---A---2(9数算式)

题目描述 思路分析 全排列check 代码实现 package TEST;import java.util.HashSet; import java.util.Set;class Main{static int[] a { 1, 2, 3, 4, 5, 6, 7, 8, 9 };static int ans;public static void main(String[] args) {f(0);System.out.println(ans / 2);}// 全排列…

Xamarin的Kimono以及Google的Guetzli和Draco

Xamarin开源了用于编辑SkiaSharp对象的工具&#xff0c;而Google则推出了减少2D JPEG和3D图形大小的方案。 Xamarin是微软的子公司&#xff0c;开源了Kimono设计器&#xff0c;它是一个用来图形化编辑SkiaSharp对象的工具&#xff0c;这种对象随后可以转换为目标平台的编码。S…

2017蓝桥杯省赛---java---A---7(正则问题)

题目描述 考虑一种简单的正则表达式&#xff1a; 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是&#xff1a; xxxxxx&#xff0c;长度是6。输入 ---- 一个由x()|组成的正则表达式。输…

Mybatis简介与原理

转载自 Mybatis简介与原理 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合&#xff0c;是一个基于Java的持久层框…

Visual Studio 2017通过SSH支持Git

在大多数开发人员的工具包中&#xff0c;Git的重要性在不断提升&#xff0c;说它是一项必备技能也不为过&#xff0c;所以对于任意一款现代化的IDE来说&#xff0c;能够使用Git多样化的功能都是其重要的组成部分。在Visual Studio 2017中&#xff0c;微软已经在其UI界面中扩展了…

2018蓝桥杯省赛---java---A---1(分数)

题目描述 思路分析 方案一 等比数列&#xff0c;再进行约分 方案二 求和 约分&#xff1a;辗转相除法求最大公约数 package TEST;class Main{static int GCD(int x,int y){//求最大公约数if(y0){return x;}return GCD(y,x%y);//是x%y&#xff0c;不是x/y}public static vo…

SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

转载自 SpringMVCSpring4Mybatis3集成&#xff0c;开发简单Web项目源码下载 基本准备工作 1、安装JDK1.6以上版本&#xff0c;安装与配置 2、下载mybatis-3.2.0版&#xff1a;https://repo1.maven.org/maven2/org/mybatis/mybatis/ 3、下载mybatis-spring-1.2.1版&#x…

微软宣布12月15日关闭开源软件托管平台CodePlex

网易科技讯4月1日消息&#xff0c;据Venturebeat报道&#xff0c;微软今天宣布&#xff0c;将关闭开源软件托管平台CodePlex。微软2006年推出这项服务&#xff0c;并决定在今年12月15日将其关闭。 微软公司副总裁布莱恩哈里&#xff08;Brian Harry&#xff09;在博文中写道&am…

2018蓝桥杯省赛---java---A--2-(星期一)

题目描述 思路分析 方案一 翻电脑日历得2000年12月31日是周日 方案二 package TEST;class Main{public static void main(String[] args) {int sum0;for (int i 1901; i < 2000; i) {//开始的那天是星期二if((i%4000)||(i%100!0&&i%40)){sum366;}else {sum36…