解决mybatis-generator 生成的mapper.xml覆盖自定义sql的问题

mybatis-generator是个好工具,一建即可生成基本增删改成功能的mapper.xml。但这些是不够的,需要自己往mapper.xml里面添加一些sql来满足需求。不过,后期修改表结构的时候就麻烦了,mybatis-generator生成的mapper.xml会与自己自定义的sql相混杂,改动相当麻烦。

解决方式很简单,使用mybatis-generator生成的mapper.xml就不要去改动里面的代码,自己需要添加sql则需要新建一个mapper_extends.xml 里面的<mappernamespace="">保持一致即可。

比如我使用mybatis-generator生成了UserMapper.xml,添加一个UserExtendsMapper.xml,UserExtendsMapper.xml的<mapper namespace="" >需要与UserMapper.xml相同,将额外的sql加到UserExtendsMapper.xml,UserMapper.xml就不要改动了,后期表添加字段的话,就不会影响到UserExtendsMapper.xml。

如果网友有更好的解决方案,请多多指教!

湿气重专家:湿气重?早晚喝点它,快速逼出体内十年湿气,越喝越漂亮!
豫用 · 猎媒

shaft_V
    shaft_V: 多谢.首先保证 自动生成的mapper xml 可以curd. 然后 新建一个UserExtMapper,在里面写自定义的方法, 让自动生成的UserMapper 去 extends 自己创建的 UserExtMapper; 然后 复制UserMapper.xml;删掉里面的sql语句,保留开头和结尾(resultMap) 但是 <mapper namespace="com.east.ext.UserMapperExt"> 这个地方是新生成的. 能运行成功,实际service里还是用userMapper进行操作. 不过 如果userMapper 已经继承了BaseMapper通用mapper 那我就不知道该怎么做了..(1个月前#5楼)收起回复
        shaft_V
        shaft_V回复 NameToJune: interface UserMapper extends UserExtMapper; UserServiceImpl里还是用UserMapper, 新添加自定义的方法全放到UserExtMapper里,具体sql放到UserExtMapper.xml里 重新生成xml model 时就不担心覆盖自己的东西了. 但在用mybatis plus 感觉不知道怎么实现这种情况.(1个月前)
        jkopop123
        NameToJune回复 shaft_V: 都是爬山人,我没能看明白你想表达的。(1个月前)
        shaft_V
        shaft_V回复 NameToJune: 哈哈,请先生教我(1个月前)
        jkopop123
        NameToJune回复 shaft_V: 你成功看晕了我(1个月前)
---------------------
作者:广铁小多多
来源:CSDN
原文:https://blog.csdn.net/zdb1314/article/details/79256128
版权声明:本文为博主原创文章,转载请附上博文链接!

5.20 mybatis反向生成的映射文件xml(如果需要自己定义其他sql语句时如下)的更多相关文章

  1. mybatis 反向生成步骤

    Mybatis 反向生成. 反向生成的步骤: 反向生成的文件 打开文件夹显示 3.打开generator.xml文件 更改配置信息  路径一般情况下用英文  中文的路径有些会识别不了  或产生乱码 4 ...

  2. MyBatis 源码分析 - 映射文件解析过程

    1.简介 在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程.由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因.所以我将映射文件解析过程的分析内容从上一篇文章中抽取出来, ...

  3. 命令+mybatis-generator插件自己主动生成Mapper映射文件

    学mybatis的时候,自己写各种 *Mapper.xml和 *Mapper.java,注意各种sql语句中的 id 是否匹配.xml中的namespace是否正确,非常麻烦有木有?今天博客内容就是高 ...

  4. 用MyGeneration模板生成NHibernate映射文件和关系

    用我的MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many) MyGeneration的几个NHibernate模 ...

  5. 用MyEclipse自动生成hibernate映射文件和实体类

    创建数据库,创建相应的表 点击图标,选择MyEclipse Datebase Explorer 右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示你所创建的连接名,如图mysqldb ...

  6. mybatis映射文件select_resultMap_关联查询_collection定义关联集合

    知识点:查询一个实体类,并查出这个类下面的集合 Employee.java实体类 package com.hand.mybatis.bean;public class Employee {    pr ...

  7. 生成 hibernate 映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤   创建数据库,创建 ...

  8. 小学生之使用Mybatis反向生成dao,entity,xml

    本小学生刚进公司的时候,就一顿装逼,不管别人问我啥我都会说:"会"!毕竟在公司吗,什么都要装,不要别人看出你的底细.不过有一天,听说用Mybatis可以反向生成dao(第一次听说) ...

  9. 深入浅出Mybatis系列七-mapper映射文件配置之insert、update、delete

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(六)---objectFactory.p ...

随机推荐

  1. 转:LINQ教程一:LINQ简介

    原文地址:https://www.cnblogs.com/dotnet261010/p/8278793.html 一.为什么要使用LINQ 要理解为什么使用LINQ,先来看下面一个例子.假设有一个整数 ...

  2. cuda_device_functions.h:32:31: fatal error: cuda/include/cuda.h: 没有那个文件或目录

    问题在复现工程https://github.com/google/hdrnet时遇到. 现象: 解决办法: 修改hdrnet文件夹下的Makefile文件:在在nvcc里面添加路径:-I /usr/l ...

  3. 【LeetCode】1、Two Sum

    题目等级:Easy 题目描述:   Given an array of integers, return indices of the two numbers such that they add u ...

  4. 【webpack结合React开发环境配置】React开发环境配置之Webpack结合Babel8.x版本安装的正确姿势(Webpack最新版4.x结合Babel8.x环境配置步骤)

    1. 安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org[使用淘宝镜像]2. 初始化package.json文件c ...

  5. [JS]window.location获取url各项参数详解

    window.location方法后还还可以带href,search等参数,下面我们来看看获取url各项参数的办法. URL即:统一资源定位符 (Uniform Resource Locator, U ...

  6. Robberies (01背包dp变形)

    题意:一个强盗要抢劫银行又不想被抓到,所以要进行概率分析求他在不被抓的情况下能抢最多的钱.他给定T(样例个数),N(要抢的银行的个数),P(被抓的概率要小于P)Mj(强盗能抢第j个银行Mj元钱),Pj ...

  7. Matplotlib基本使用简介

    目录 Matplotlib基本使用简介 1. Matplotlib简介 2. Matplotlib操作简介 Matplotlib基本使用简介 1. Matplotlib简介   Matplotlib是 ...

  8. springcloud(四):Eureka客户端公共组件打包方式

    ,      一.前言  各位大佬应该知道,在大型项目中都需要有数据传输层,一般项目都采用的是MVC结构,如果有10个表,则会创建10个实体类,在各个层之间应该使用实体类传递数据: 在微服架构中,也许 ...

  9. time库

    简介 返回系统当前时间戳(正常的生活时间) 返回格林威治时间戳对应的struct_time对象 本地时间的struct_time对象 当前时间戳对应的易读格式字符串时间(周几,月份,号数,时,分,秒, ...

  10. poj 1679 判断最小生成树是否唯一

    /* 只需判断等效边和必选边的个数和n-1的关系即可 */ #include<stdio.h> #include<stdlib.h> #define N 110 struct ...