背景:
公司使用若依框架快速构建项目,客户那边原有的数据要同步过来,且要求字段与原先的字段一致,可以让数据丝滑无畅导入。用户表和部门表是基础在代码出现的地方比较多,该如何考虑去过度去更换)
如何快速精确无比更换那就值得深思
在做这件事情之前,请记住要提交代码提交代码提交代码,方便回滚
导出整个数据库不要在原有的数据库开始乱造。
然后就是漫长的对字段 哪些字段需要修改哪些字段要增加,记不住没关系,因为我记不住
表有了直接代码生成,只需要更换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_statusfrom sys_user uleft join sys_dept d on u.departmentId = d.dept_idleft join sys_user_role ur on u.userID = ur.user_idleft join sys_role r on r.role_id = ur.role_id</sql>
这种配置外键关联性对象的操作还是之前使用全映射框架hibernate 使用注解的实现的。
原来这mybatis association 也可以额配置关联关系 要研究一下
看了若依框架mapper.xml 文件 再看看 生成的 这区别还是很大 文件真的简介不少