博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
阅读量:6427 次
发布时间:2019-06-23

本文共 3927 字,大约阅读时间需要 13 分钟。

hot3.png

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

 

1、相关文件

关于Mybatis-Generator的下载可以到这个地址:

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

以下是相关文件截图:

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

generatorConfig.xml

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

上面配置文件中的:

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

如果想要mapper配置文件加入sql的where条件查询, 可以将enableCountByExample等设为true, 这样就会生成一个对应domainObjectName的Example类, enableCountByExample等设为false时, 

就不会生成对应的Example类了.

 

生成语句文件:

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

id, title, describe, content
delete from message where id = #{id,jdbcType=INTEGER}
insert into message (id, title, describe, content) values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{describe,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR})
insert into message
id,
title,
describe,
content,
#{id,jdbcType=INTEGER},
#{title,jdbcType=VARCHAR},
#{describe,jdbcType=VARCHAR},
#{content,jdbcType=VARCHAR},
update message
title = #{title,jdbcType=VARCHAR},
describe = #{describe,jdbcType=VARCHAR},
content = #{content,jdbcType=VARCHAR},
where id = #{id,jdbcType=INTEGER}
update message set title = #{title,jdbcType=VARCHAR}, describe = #{describe,jdbcType=VARCHAR}, content = #{content,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER}

 

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);}

 

转载于:https://my.oschina.net/zhangyafei/blog/686682

你可能感兴趣的文章
《Swift 权威指南》——第6章,第6.10节嵌套函数
查看>>
《自己动手做交互系统》——1.3 本章小结
查看>>
Mobile devices bundled with malware?
查看>>
《JavaScript面向对象精要》——1.5 访问属性
查看>>
《Python数据可视化编程实战》—— 第 1 章 准备工作环境
查看>>
Android应用性能优化最佳实践.1.1 Android Studio的优势
查看>>
《设计模式解析(第2版•修订版)》—第2章 2.2节什么是UML
查看>>
【直播】APP全量混淆和瘦身技术揭秘
查看>>
10个大坑,当你产品上架AppStore会遇到
查看>>
【shell 脚本】两种登录方式
查看>>
学习编程的方法
查看>>
升级linux自带的Python
查看>>
百度地图2.0瓦片地址获取(窗口内瓦片)
查看>>
我的友情链接
查看>>
.JDK1.6安装配置后的测试
查看>>
判断闰年的函数
查看>>
pkill -9 nginx
查看>>
关于ASP.NET MVC4 Web API简单总结
查看>>
BGP最新的AS号:4-byte-as 转换为十进制及AS号兼容性
查看>>
Windows2008server R2 组策略批量更改本地管理员密码
查看>>