用idea导入项目,install到本地仓库。
在需要自动生成映射文件xml的项目里配置插件
- 配置中的根路径为项目路径
- 类名必须使用首字母大写的驼峰命名
- 实体必须有id字段,且实体必须使用id作为主键
- 实体的字段命名必须以驼峰命名
- 字段映射到数据库的字段都是将驼峰命名的大写字母改为_小写(userId -> user_id)
- xml配置文件的namespace需要手动修改为正确的地址
<build>
<plugins>
<plugin>
<groupId>com.alibaba.jingxun</groupId>
<artifactId>auto-mapping-xml</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<!-- 配置文件路径(相对路径根路径为主项目路径)-->
<name>./auto.xml</name>
<!-- 项目的路径(1.0必须填项目的路径)-->
<path>G:\IDEA\bookHandlerSystem</path>
<!-- 自定义xml模板路径(不配置使用默认配置模板)-->
<ftl></ftl>
</configuration>
</plugin>
</plugins>
</build>
<?xml version="1.0" encoding="UTF-8"?>
<config>
<packages>
<!--使用包扫描时实体的表名默认与类名的驼峰命名一致-->
<package>
<!--需要自动生成xml的实体的包-->
<name>com.alibaba.jingxun.model</name>
<!--xml生成的路径(使用包扫描时默认xml文件与类名一致)-->
<path>./resources/mapping/model/</path>
</package>
<package>
<name>com.alibaba.jingxun.entity</name>
<!--不配置path时默认xml路径与类文件路径一致-->
</package>
</packages>
<!--单独生成莫格实体的xml配置-->
<model>
<!--实体的完全限定名(包路径+类名)-->
<clazz>com.alibaba.jingxun.model.Student</clazz>
<!--xml生成路径-->
<mapping>./student.xml</mapping>
<!--实体在数据库中的表名-->
<table>student</table>
</model>
</config>
<#--table:实体对应数据库的表名-->
<#--oneself.type:实体完全限定名-->
<resultMap id="BaseResultMap" type="${oneself.type}">
<#--oneself.params:实体参数列表->
<#list oneself.params as param>
<#--param.property:实体参数字段名->
<#--param.column:实体参数对应数据库字段名->
<#--param.jdbcType:实体参数对应数据库类型->
<#if param.property == "id" >
<id column="${param.column}" property="${param.property}" jdbcType="${param.jdbcType}"/>
<#else >
<result column="${param.column}" property="${param.property}" jdbcType="${param.jdbcType}"/>
</#if>
</#list>
</resultMap>
/**
* 添加实体
* @param object
* */
void insert(M object);
/**
* 删除实体
* @param id
* */
void delete(@Param("id") Integer id);
/**
* 更新实体
* @param model
* */
void update(M model);
/**
* 查询实体
* @param id
* @return
* */
M select(@Param("id") Integer id);
/**
* 获取实体数据库的最大id值
* @return
* */
Integer maxId(M m);
/**
* 获取实体的数目
* @return
* */
Long count();
/**
* 根据每个字段查找实体列表
* @param field 字段
* @param value 值
* @return 符合条件的实体列表
* */
List<M> findByOneField(@Param("field") String field,@Param("value") String value);
/**
* 查找分页实体列表
* @param tables list查询的表字符串
* <p>(select * from user,role where 1 = 1)</p>
* <p>table 为from到where之间的字符串</p>
* @param offset 偏移量
* @param limit 分页大小
* @param sort 排序字段
* @param order 排序方式
* @param conditions 查询条件的sql(where 后面的条件)
* @return 分页内容
* */
List<M> list(@Param("tables") String tables,@Param("offset") Integer offset, @Param("limit") Integer limit, @Param("order") String order, @Param("sort") String sort, @Param("conditions") String conditions);
- 构建项目,保证需要生产的实体被编译
- 在启动项里添加maven启动项
- 在command line 填auto-mapping-xml:auto-mapping
- 直接运行即可
- fileNotFound 文件路径有误,注意使用./开头的文件路径的根路径是项目路径
- 不是正确的类路径 看项目是否编译,类的完全限定名是否错误,pom配置path路径是否错误
- 配置namespace通用路径,实现namespace自动完成
- 将项目路径改为自动识别,就不需要配置项目路径
- 内部嵌入java编译功能,可以在项目编译的情况下运行
- 修改1.0版本bug
- 将项目改为不需要自行自动生成xml
- 修改1.1版本bug