一般情况下我们项目以实体为中心,所以我们考虑到我们项目在迭代过程中,实体新增字段,不会影响以往的代码,所以我们需要将mapper文件分成两个并且属于同一个命名空间下,然后关闭全局null字段更新,避免迭代之后,其它业务的更新影响新增的字段值。
所以mapper.xml的目录结构如下,default中存放生成的xml,立马只有resultmap预计basecolumnList。自定义的mapper全部放在sql.mapper目录下,避免被新生成的xml文件覆盖。
└───resources
│ │ └───sql
│ │ ├───default
│ │ └───mapper
public class CodeGenerator {
public static class DataSourceProperties {
public static final String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8";
public static final String username = "root";
public static final String password = "root";
}
public static class Config {
//项目根目录
public static String rootPath=System.getProperty("user.dir");
public static String author="xxxx";
//xml文件路径
public static StringBuilder xmlPath=new StringBuilder();
//java文件生成根路径
public static StringBuilder outputDir=new StringBuilder();
//自定义一个公共PO用于存放公共字段,并且标记为序列化
public static String superEntity="com.qimo.framework.mybatis.BasePO";
//公用的字段
public static final String[] commonFields = {
"update_time","create_time","update_user_code","create_user_code",
"update_username","create_username","deleted","available"};
//开发人员可以在这里修改各自项目的配置
//todo 如果是多模块,需要填写模块名,如果不需要可以为空串
public static String module="模块名称";
//todo 代码根包名
public static String parent_package="com.qimo.user";
//todo 需要生成的表
public static String[] tables=new String[]{
""};
//todo 表的前缀,如果不需要填空
public static String[] prefix=

文章介绍了一种在项目迭代中处理实体字段变化的方法,通过将Mapper文件分为default和自定义mapper目录,关闭全局null字段更新,确保新字段不影响旧代码。同时,展示了CodeGenerator类的配置,包括数据源、全局配置、包配置、策略配置等,以及如何避免字段覆盖和利用BasePO实现公共字段的序列化。此外,还提到了mybatis-plus的配置,用于逻辑删除和字段填充策略。
9820

被折叠的 条评论
为什么被折叠?



