数据库逆向代码生成工具:MyBatis Generator的使用

1.前言

今天开发零销量系统,按照我自己的开发习惯,表设计出来了之后就是写dao层mapper了。以前自己学习的时候都是自己一个一个的敲出来。也听过过像hibernate反向工具一样的自动生成dao层的工具,之前没有使用过,今天正好用了一下generator,感觉很好用,可以逆向生成持久层的基本代码节省了大量的时间。而且使用起来很方便,只需要在一个配置文件里面改几个配置信息就可以了。

2.介绍

MyBatis Generator github  https://github.com/mybatis/generator

MyBatis Generator的详细介绍http://mybatis.github.io/generator/index.html

MyBatis Generator  With Maven http://mybatis.github.io/generator/running/runningWithMaven.html

3.开始使用

1)百度网盘下载:http://pan.baidu.com/s/1bni2JON

2)将文件夹放在桌面(目录自己制定)

3)配置generator.xml,在这个文件中加了注释,需要改动的地方。(我用mac上的文本编辑器写入的引号总是不能识别,采用了将文件复制到idea中,更改完成后在粘贴回原文件)

4)定位到generator文件夹下,执行java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

注:配置文件中得targetProject的路径必须存在

5)将生成的文件分别拷贝到自己的项目相应的目录中

4.生成的文件

1)domain下得java文件

package com.sankuai.meituan.crm.domain.zerosale;

import java.util.Date;

public class ZeroSaleClueRemark {

private Integer remarkId;

private String remarkTitle;

private Date createTime;

private Integer clueId;

public Integer getRemarkId() {

return remarkId;

}

public void setRemarkId(Integer remarkId) {

this.remarkId = remarkId;

}

public String getRemarkTitle() {

return remarkTitle;

}

public void setRemarkTitle(String remarkTitle) {

this.remarkTitle = remarkTitle == null ? null : remarkTitle.trim();

}

public Date getCreateTime() {

return createTime;

}

public void setCreateTime(Date createTime) {

this.createTime = createTime;

}

public Integer getClueId() {

return clueId;

}

public void setClueId(Integer clueId) {

this.clueId = clueId;

}

}

2)mapper.java

package com.sankuai.meituan.crm.dao.mapper.zerosale;

import com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark;

public interface ZeroSaleClueRemarkMapper {

int deleteByPrimaryKey(Integer remarkId);

int insert(ZeroSaleClueRemark record);

int insertSelective(ZeroSaleClueRemark record);

ZeroSaleClueRemark selectByPrimaryKey(Integer remarkId);

int updateByPrimaryKeySelective(ZeroSaleClueRemark record);

int updateByPrimaryKey(ZeroSaleClueRemark record);

}

3)mapper.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="com.sankuai.meituan.crm.dao.mapper.zerosale.ZeroSaleClueRemarkMapper" >

<resultMap id="BaseResultMap" type="com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark" >

<id column="remark_id" property="remarkId" jdbcType="INTEGER" />

<result column="remark_title" property="remarkTitle" jdbcType="VARCHAR" />

<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />

<result column="clue_id" property="clueId" jdbcType="INTEGER" />

</resultMap>

<sql id="Base_Column_List" >

remark_id, remark_title, create_time, clue_id

</sql>

<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >

select

<include refid="Base_Column_List" />

from zero_sale_clue_remark

where remark_id = #{remarkId,jdbcType=INTEGER}

</select>

<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >

delete from zero_sale_clue_remark

where remark_id = #{remarkId,jdbcType=INTEGER}

</delete>

<insert id="insert" parameterType="com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark" >

insert into zero_sale_clue_remark (remark_id, remark_title, create_time,

clue_id)

values (#{remarkId,jdbcType=INTEGER}, #{remarkTitle,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},

#{clueId,jdbcType=INTEGER})

</insert>

<insert id="insertSelective" parameterType="com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark" >

insert into zero_sale_clue_remark

<trim prefix="(" suffix=")" suffixOverrides="," >

<if test="remarkId != null" >

remark_id,

</if>

<if test="remarkTitle != null" >

remark_title,

</if>

<if test="createTime != null" >

create_time,

</if>

<if test="clueId != null" >

clue_id,

</if>

</trim>

<trim prefix="values (" suffix=")" suffixOverrides="," >

<if test="remarkId != null" >

#{remarkId,jdbcType=INTEGER},

</if>

<if test="remarkTitle != null" >

#{remarkTitle,jdbcType=VARCHAR},

</if>

<if test="createTime != null" >

#{createTime,jdbcType=TIMESTAMP},

</if>

<if test="clueId != null" >

#{clueId,jdbcType=INTEGER},

</if>

</trim>

</insert>

<update id="updateByPrimaryKeySelective" parameterType="com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark" >

update zero_sale_clue_remark

<set >

<if test="remarkTitle != null" >

remark_title = #{remarkTitle,jdbcType=VARCHAR},

</if>

<if test="createTime != null" >

create_time = #{createTime,jdbcType=TIMESTAMP},

</if>

<if test="clueId != null" >

clue_id = #{clueId,jdbcType=INTEGER},

</if>

</set>

where remark_id = #{remarkId,jdbcType=INTEGER}

</update>

<update id="updateByPrimaryKey" parameterType="com.sankuai.meituan.crm.domain.zerosale.ZeroSaleClueRemark" >

update zero_sale_clue_remark

set remark_title = #{remarkTitle,jdbcType=VARCHAR},

create_time = #{createTime,jdbcType=TIMESTAMP},

clue_id = #{clueId,jdbcType=INTEGER}

where remark_id = #{remarkId,jdbcType=INTEGER}

</update>

</mapper>

5.总结

generator只是生成了一些基本的增删改查,就像我们在hibernate中经常用的basedao一样,但是也能减少我们大量的代码编写。后续的业务只需要在它的基础上增加就可以了。

在配置文件中得<table>标签中我们将

enableCountByExample="false"
enableUpdateByExample="false"

enableDeleteByExample="false"

enableSelectByExample="false"
selectByExampleQueryId="false"

都设置成了false,要是设置为true(默认为true)则可以生成一个example,有点类似hibernateTemplate,同样我们也可以使用example中的Critertia,一种面向对象的查询方式,并且根据实体类中字段的属性,生成不同的操作。

当然你也可以根据实际需要直接使用实体类进行增删改查。

当然,这里介绍的时简单的通过命令生成文件的方式,还有一种方式是创建一个maven工程,将配置文件复制到类路径下,在pom.xml中加入

<build>

<finalName>mybatis_generator</finalName>

<plugins>

<plugin>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-maven-plugin</artifactId>

<version>1.3.2</version>

</plugin>

</plugins>

</build>

运行,就可以了!

时间: 2024-10-22 11:13:31

数据库逆向代码生成工具:MyBatis Generator的使用的相关文章

一个很好用的自动生成工具——mybatis generator

mybatis generator-自动生成代码 准备材料: 一个文件夹,一个数据库的驱动包,mybatis-generator-core-1.3.5.jar,一条生成语句 如图:(我用的是derby数据库,使用其他数据库需修改相应的jar驱动包) generatorConfig.xml文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 P

数据库逆向框架代码生成工具:MyBatis Generator的使用

MyBatis Generator的详细介绍http://mybatis.github.io/generator/index.html MyBatis Generator  With Maven http://mybatis.github.io/generator/running/runningWithMaven.html 1前言 前段时间根据工作需要,使用Spring+Mybatis完成了一个功能模块,领导推荐了MyBatis Generator(以下简称为MBG),可以逆向生成持久层的基本代

数据库逆向框架代码生成工具:MyBatis Generator 使用

IDEA 逆向 MyBatis 工程时,不像支持 Hibernate 那样有自带插件,需要集成第三方的 MyBatis Generator. MyBatis Generator的详细介绍 http://mybatis.github.io/generator/index.html 本篇博客图解 MyBatis Generator 的使用过程,并结合实战说明逆向工程的使用方式. 1.搭建 MyBatis Generator 插件环境 a. 添加插件依赖 pom.xml <!--mybatis 逆向生

Mybatis分页-利用Mybatis Generator插件生成基于数据库方言的分页语句,统计记录总数 (转)

众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题.网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页.但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉有点浪费性能. Mybatis Generator是Mybatis的代码生成工具,可以生成大部分的查询语句. 本文提供的分页解决方案是新增Mybatis Generator插件,在用Mybatis

mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用

mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花了一点时间,按照 mybatis generator 的doc 文档参考,初步配置出了一个可以使用的版本,我把源代码也提供下载,mybatis 代码生成工具,主要有一下功能:1.生成pojo 与 数据库结构对应2.如果有主键,能匹配主键3.如果没有主键,可以用其他字段去匹配4.动态select,up

Mybatis 代码生成工具

Mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以 Mybatis 官方也推出了一个 Mybatis 代码生成工具的 jar 包. 首先要下载mybatis-generator-core-1.3.2-bundle.zip 文件,之后解压有两个文件夹   docs 是帮助文档目录: lib 目录是jar 包,需要 mybatis-generator-core-1.3.2.jar,将它拷贝到我们刚刚创建的 Java工程中:  按

mybatis generator生成代码工具的使用

mybatis generator生成代码工具的使用, 附demo 使用Hibernate时, 可以很方便的生成model,dao,和映射配置文件.在mybatis里, 也有生成器, 即mybatis generator, 简称MBG. 下面为大家介绍一下MBG的使用. 下载mybatis-generator-core-1.3.1-bundle.zip之后, 解压得到mybatis-generator-core-1.3.1.jar, 即生成器的jar包, 将mybatis-3.0.6.jar和m

Mybatis generator 生成domain字段带数据库注释

由于目前准备开始的项目要用到Mybatis,所以不可避免的要使用Mybatis generator工具通过数据库直接生成map,entity.但在使用过程中,原版的Mybatis generator有很多不足,每次启动的时候还要单独启动,不能在eclipse里面通过插件启动:不能把数据库注释写入文件中是一个最大问题.但是我想要直接带数据库中文注释的eclipse插件,找了好久都没找到,只找到菠萝大象的http://www.blogjava.net/bolo/category/54755.html

使用Mybatis 代码生成工具

之前都是使用MyBatis Generator https://github.com/mybatis/generator dependency> org.mybatis.generator mybatis-generator-core 1.3.5 dependency> 4292e;">现介绍mybatis-generator界面工具 https://github.com/astarring/mybatis-generator-gui 版本: 0.7.3 1. 下载该项目,以m