背景:
公司使用若依框架快速构建项目,客户那边原有的数据要同步过来,且要求字段与原先的字段一致,可以让数据丝滑无畅导入。用户表和部门表是基础在代码出现的地方比较多,该如何考虑去过度去更换)
如何快速精确无比更换那就值得深思
在做这件事情之前,请记住要提交代码提交代码提交代码,方便回滚
导出整个数据库不要在原有的数据库开始乱造。
然后就是漫长的对字段 哪些字段需要修改哪些字段要增加,记不住没关系,因为我记不住
表有了直接代码生成,只需要更换domian 实体类 和你mapper.xml 文件
先换实体类 再换mapper.xml
当你开始的时候你就得知道开弓没有回头箭
更换实体类 能知道哪些地方使用了什么属性
因为增加修改了列名所以需要更换 sql 语句
在修改代码的时候发现mapper一种新的写法
<mapper namespace="com.trinity.system.mapper.SysUserMapper">
<resultMap type="SysUser" id="SysUserResult">
<result property="userID" column="userID" />
<result property="loginName" column="loginName" />
<result property="userName" column="userName" />
<result property="email" column="email" />
<result property="mobile" column="mobile" />
<result property="sex" column="sex" />
<result property="avatar" column="avatar" />
<result property="password" column="password" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="ip" column="ip" />
<result property="loginDate" column="login_date" />
<result property="createUser" column="createUser" />
<result property="createTime" column="createTime" />
<result property="updateUser" column="updateUser" />
<result property="updateTime" column="updateTime" />
<result property="remark" column="remark" />
<result property="cid" column="cid" />
<result property="certificateId" column="certificateId" />
<result property="secretLevel" column="secretLevel" />
<result property="telephone" column="telephone" />
<result property="expireTime" column="expireTime" />
<result property="sourceSystem" column="sourceSystem" />
<result property="note" column="note" />
<association property="dept" column="departmentId" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
<resultMap id="deptResult" type="SysDept">
<result property="deptID" column="deptID" />
<result property="parentId" column="parent_id" />
<result property="ancestors" column="ancestors" />
<result property="deptName" column="dept_name" />
<result property="orderNum" column="order_num" />
<result property="leader" column="leader" />
<result property="phone" column="phone" />
<result property="email" column="email" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<resultMap id="RoleResult" type="SysRole">
<id property="roleId" column="role_id" />
<result property="roleName" column="role_name" />
<result property="roleKey" column="role_key" />
<result property="roleSort" column="role_sort" />
<result property="dataScope" column="data_scope" />
<result property="status" column="role_status" />
</resultMap>
<sql id="selectUserVo">
select u.userID, u.departmentId, u.loginName, u.userName u.email, u.mobile, u.sex, u.avatar, u.password, u.status, u.del_flag, u.ip, u.login_date, u.createUser, u.createTime, u.updateUser, u.updateTime, u.remark, u.cid, u.certificateId, u.secretLevel, u.telephone, u.expireTime, u.sourceSystem, u.note,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
left join sys_dept d on u.departmentId = d.dept_id
left join sys_user_role ur on u.userID = ur.user_id
left join sys_role r on r.role_id = ur.role_id
</sql>
这种配置外键关联性对象的操作还是之前使用全映射框架hibernate 使用注解的实现的。
原来这mybatis association 也可以额配置关联关系 要研究一下
看了若依框架mapper.xml 文件 再看看 生成的 这区别还是很大 文件真的简介不少