MyBatis Generator 使用说明
工具功能:
按配置一键生成MyBatis可用的Entity.java,Mapper.java,Mapper.xml
工具位置:
coinpay.core - src/test/java - com.keen.coinpay.mbg
文件说明:
Generator.java - 其main方法可执行, 用于生成MyBatis可用的Entity,Mapper.java,Mapper.xml
config-default.xml - 配置示例
config.properties - 可变参数配置, 包括有数据库信息,包信息等
config.xml - 固定参数配置, 参照config-default.xml
文件详解:
config.properties
ds.driver.path - 数据库驱动jar的物理路径
ds.driver-class-name, ds.url, ds.username, ds.password - 数据库连接四要素
target.java.path=src/main/java - java资源路径(对应src/main/java)
target.resource.path=src/main/resources - resources资源路径(对应src/main/resources)
target.entity.package=com.keen.coinpay.entity - 生成entity文件所在的包
target.entity.base.class=com.keen.coinpay.entity.base.Entity - 忽略
target.mapper.path=com/keen/coinpay/mapper - 生成mapper.xml文件所在的路径(因为coinpay中把mapper.xml和mapper.java放到一起了,所以这里是这样)
target.mapper.package=com.keen.coinpay.mapper - 生成mapper.java文件所在的包
☆☆☆☆☆☆☆
config.xml
<table tableName="car" domainObjectName="Car"
enableCountByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"
enableUpdateByExample="false" enableDeleteByExample="false">
<property name="useActualColumnNames" value="false" />
</table>
如上table标签,tableName指表的名字,domainObjectName指生成的entity的类名,一个table代表一个表,可以同时有多个table,出现的table会被完全覆盖
使用注意:
1.表要有主键,不然只有查询没有删改增
2.insert和insertSelective,updateByPrimaryKey和updateByPrimaryKeySelective都是增加和更新的功能, 但是带selective的方法对null参数不操作,建议只使用带Selective的方法
3.insertSelective方法默认不带主键回显(由数据库自动生成主键,常见于主键自增长),通过给对应mapper.xml的对应方法添加[useGeneratedKeys="true" keyProperty="id"]来实现回显,这里的主键列名是[id],可自行设置
4.由于会完全覆盖(假设系统已经有了表a对应的A.java,aMapper.java,aMapper.xml,再次执行,会完全覆盖对a的自定义字段方法等内容),所以重复生成时需要视情况做好备份
5.差不多了