什么是MyBatis Generator
MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model代码,及mapper配置文件;
如何配置MyBatis Generator
代码生成器(MBG)是由一个XML配置文件驱动,主要告诉MBG以下三件事
- 如何连接到数据库
- 生成什么对象,以及如何生成它们
- 那些表生成对象
具体如何配置,可以参考如下链接,已经有很详细的说明了:
这里给出本Demo的配置,以及相应的注释,如下:
其实官网有很全的注释,想要了解更多配置,最好参考官网。
如何运行MyBatis Generator
有以下四种运行方式:
- 从 使用 XML 配置文件
- 作为 使用 XML 配置文件
- 作为
- 从另一个 使用 XML 配置文件
个人比较推荐作为maven插件运行,方便集成,部署。
MyBatis Generator例子
新建一个maven工程,编写pom.xml文件,如下,主要是添加mybatis-generator-maven-plugin插件:
4.0.0 cn.edu.hdu.mbgdemo mbgdemo 0.0.1-SNAPSHOT jar mbgdemo http://maven.apache.org UTF-8 junit junit 3.8.1 test org.mybatis.generator mybatis-generator-core 1.3.2 ${project.name} src/main/java org.apache.maven.plugins maven-compiler-plugin 3.3 1.7 1.7 UTF-8 org.apache.maven.plugins maven-jdeps-plugin 3.0.0 jdkinternals test-jdkinternals org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 true true src/main/resources/generatorConfig-demo.xml mysql mysql-connector-java 5.1.30 Generate MyBatis Artifacts generate
然后编写BaseDao和BaseModel,添加一些共性部分的代码用于被子类继承,如下:
public interface BaseDao{ List selectAll(); int delete(String id); T select(String id); int insert(T record); int update(T record);}
public class BaseModel implements Serializable { /** * ID */ private String id; /** * 是否有效 */ private Boolean valid; /** * 由谁创建 */ private String createBy; /** * 创建时间 */ private Date createTime; /** * 最后修改者 */ private String updateBy; /** * 最后修改时间 */ private Date updateTime; public String getId() { return id; } public void setId(String id) { this.id = id; } public Boolean getValid() { return valid; } public void setValid(Boolean valid) { this.valid = valid; } public String getCreateBy() { return createBy; } public void setCreateBy(String createBy) { this.createBy = createBy; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getUpdateBy() { return updateBy; } public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }}
编写配置文件generatorConfig-demo.xml,前面部分已经给出了,这里就不贴了,按官网来配置即可。
最后执行mybatis-generator:generate命令即可;
执行前与执行后,可以发现自动生成了Dao代码,model代码,mapper配置文件:
这里可以看下自动生成的mapper配置文件,如下,可见mbg可以帮助我们大大提高开发效率,而且还可以尽量减少人为错误:
delete from demo_user where id = #{id,jdbcType=VARCHAR} insert into demo_user (id, name, address ) values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR} ) update demo_user set name = #{name,jdbcType=VARCHAR}, address = #{address,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR}
当然,我们也可以自己往dao添加一些方法,然后在mapper配置文件里添加对应的配置信息。
Demo源码