文档:http://mybatis.org/generator/index.html
依赖 pom.xml
4.0.0
com.mouday
generator-demo
1.0-SNAPSHOT
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.5
src/main/resources/generatorConfig.xml
true
true
org.mybatis.generator
mybatis-generator-core
1.3.5
mysql
mysql-connector-java
8.0.20
生成器配置 generatorConfig.xml
参数说明
通用参数
targetPackage 指定包名
targetProject 指定路径
javaClientGenerator可选参数:
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
# 执行代码生成
$ mvn mybatis-generator:generate
# 生成的文件
$ tree
.
├── mapper
│ ├── PersonMapper.java
│ └── PersonMapper.xml
└── model
├── Person.java
└── PersonExample.java
查看生成的文件里边有很多无用的代码,可以通过进一步的配置来控制代码生成
生成的代码就简洁了不少
Person.java
package com.mouday.demo.model;
public class Person {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
PersonMapper.java
package com.mouday.demo.mapper;
import com.mouday.demo.model.Person;
public interface PersonMapper {
int deleteByPrimaryKey(Integer id);
int insert(Person record);
int insertSelective(Person record);
Person selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(Person record);
int updateByPrimaryKey(Person record);
}
PersonMapper.xml
id, name, age
select
from person
where id = #{id,jdbcType=INTEGER}
delete from person
where id = #{id,jdbcType=INTEGER}
insert into person (id, name, age
)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}
)
insert into person
id,
name,
age,
#{id,jdbcType=INTEGER},
#{name,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER},
update person
name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
where id = #{id,jdbcType=INTEGER}
update person
set name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}