mybatis-plus 表名添加前缀的实现方法
1、使用mybatis-plus自身的查询构造去,只需要在全局配置中添加如下配置
mybatis-plus: mapper-locations: classpath:mappers/*Mapper.xml # mapper映射文件 global-config: db-config: table-prefix: tr_
2、自定义sql语句中添加表名前缀
在yml文件中添加如下配置
mybatis-plus: mapper-locations: classpath:mappers/*Mapper.xml # mapper映射文件 global-config: db-config: table-prefix: tr_ configuration-properties: prefix: tr_ # 自定义sql中表名带前缀
然后在自定义sql语句如下
select * from ${prefix}user
编译后的sql语句
select * from tr_user
MybatisPlus 数据库字段使用驼峰命名法时碰到的问题
假如有个实体类:
class User{ int userId; }
按照规范,数据库User表里边对应userId的字段名应该为 user_id。
如果数据库的字段名也是userId的话(没有下划线),那么使用MybatisPlus的时候就会碰到映射问题,实际查询的时候默认是查询user_id。
解决办法:
.properties添加一行配置,关闭驼峰到下划线的映射即可
mybatis-plus.configuration.map-underscore-to-camel-case=false
mybaits-plus功能还是很强大的,官网地址:https://mp.baomidou.com/guide/
到此这篇关于mybatis-plus 表名添加前缀的实现方法的文章就介绍到这了,更多相关mybatis-plus 表名添加前缀内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
mybatis-plus getOne和逻辑删除问题详解
1.getOne 如果查询出的结果有多个,这时候会抛异常 这样就不用每次getOne的Wrapper后面还跟last("limit 1") 2.@TableLogic 就不用每次list查询的时候跟上 .eq("deleted",false)了 PS:下面再次强调下Mybatis-Plus中的逻辑删除 1. 需要在删除的字段上添加注解@TableLogic 2. 在配置文件中写上配置 mybatis-plus: global-config: db-config: l
-
Mybatis-Plus通用枚举的使用详解
解决了繁琐的配置,让 mybatis 优雅的使用枚举属性! 修改表结构 ALTER TABLE `tb_user` ADD COLUMN `sex` INT ( 1 ) NULL DEFAULT 1 COMMENT '1-男,2-女' AFTER `deleted`; 定义枚举 public enum SexEnum implements IEnum<Integer> { MAN(1, "男"), WOMAN(2, "女"); private int v
-
MybatisPlus中的删除和逻辑删除及区别介绍
删除又分为逻辑删除和物理删除,那么它们有什么区别呢? 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据. 逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为"被删除状态",之后在数据库中仍旧能看到此条数据记录. 在我们日常开发中,为了保留数据,经常会使用逻辑删除的方式进行数据删除,下面我们就来看看物理删除与逻辑删除怎么实现的吧 首先假设我有这样一张表 实体类: package com.atguigu.mybatis_plus.entity; import
-
MyBatisPlus中使用or()和and()遇到的问题
在项目中使用MyBatisPlus中的or()查询时由于误用,导致查询数据不对,仅作记录. 写法一: LambdaQueryWrapper<Task> queryWrapper = new QueryWrapper<Task>().lambda(); queryWrapper .eq(Task::getUserId, "15") .eq(Task::getStatus, 2) .or() .eq(Task::getFileSize, 3251544304L);
-
mybatis-plus 表名添加前缀的实现方法
1.使用mybatis-plus自身的查询构造去,只需要在全局配置中添加如下配置 mybatis-plus: mapper-locations: classpath:mappers/*Mapper.xml # mapper映射文件 global-config: db-config: table-prefix: tr_ 2.自定义sql语句中添加表名前缀 在yml文件中添加如下配置 mybatis-plus: mapper-locations: classpath:mappers/*Mapper.
-
Mybatis 动态表名+Map参数传递+批量操作详解
需求: 之前项目一个变动,需要对3张mysql数据库表数据进行清洗,3张表表名不同,表结构完全相同,需要对这3张表进行相同的增.改.查动作,一开始比较紧急先对一张表进行操作,后来复制了3个一样的 service.dao.mapper等.后来对代码进行优化,研究了一下动态表名的处理. 1,查询操作: 查询操作只需要传入动态表名的时候,传递参数仍然是map mapper.xml内,需要使用statementType="STATEMENT",采用非预编译模式 mapper.xml内,动态表名
-
Linux系统MySQL忘记密码,重置密码,忽略表名、列名大小写的方法
在linunx系统刚装的MySQL,忘记曾经设置的密码或者安装过程无法设置密码时,试图用常用的密码猜测,如:1,11,111,1111,11111,111111,123456,000000,1234321等等最简单的默认密码来试探,结果试遍了也不对,还是无法进入mysql.原因可能是你当初设置的密码比较复杂后来给忘了,更可能的原因是你安装过程中没允许设置密码,这样的密码一般是MySQL随机生成的一大串由大小写字母.数字和符号组合成的复杂密码.这样的密码不需要白费力去试探了,这就需要通过特殊的方式
-
MySQL表名不区分大小写的设置方法
原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lower_case_table_names=13.重启MySQL即可: 其中 lower_case_table_names=1 参数缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0,因此在window中不会遇到的问题,一旦一直到linux就会出问题的原因(尤其在mysql对表起名时是无
-
mybatis水平分表实现动态表名的项目实例
目录 一.水平分表 二.项目实现 目录结构 三.扩展 一.水平分表 当业务需求的数据量过大时,一个表格存储数据会非常之多,故时长采用水平分表的方式来减少每张表的数据量即是提升查询数据库时的效率. 水平分表时,各表的结构完全一样,表名不同. 例如:这里我们建了10张user表,每张表的结构完全一致,表名由0~9. 表中包含有id和name属性且都采用varchar的存储类型. 为什么id没有采用int自增的形式? 大型项目极有可能采用分布式数据库,若采用自增的方式,会导致id重复.且id也不一定只
-
thinkphp 表名 大小写 窍门
我们有一个表auth_group_access,那么如何使用呢? 在使用M方法时,对于带下划线的表名,可以采用如下方法. M('AuthGroupAccess'); 对应sql语句SQL: SHOW COLUMNS FROM `auth_group_access` [ RunTime:0.009198s ]
-
mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题
创建用户: /** * 创建一个或多个新用户 insert 字段和表名不确定时动态添加 */ @Test public void createAccount() { String lineColumn = ""; Map<String, Object> paramsMap = new HashMap<String, Object>(); Map<String, Object> dataMap = new HashMap<String, Obje
-
Mybatis动态调用表名和字段名的解决方法
一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用功能.今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查询以及某些字段是否显示,如某张表的某些字段不让用户查询到.这种情况下,就需要构建sql来动态传入表名.字段名了.现在对解决方法进行下总结,希望对遇到同样问题的伙伴有些帮助. 动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理.下面让我们先
-
SqlServer提示“列前缀tempdb.无效: 未指定表名”问题解决方案
在查询凭证.审核凭证时出现"列前缀tempdb.无效: 未指定表名"的错误提示,怎么解决? 原因:是因为SQL2000无法识别计算机名称中"-"."."以及中文字等特殊字符, 只能使用英文字母及数字. 解决:右键我的电脑"属性"中"计算机名"点击修改,改为纯英文(最好8位以内),切记计算机名不能带".-"等字符.就可以解决了. 将这个问题改过来之后, 又有问题随之而来: 用友系统管理中注
-
mybatis plus 的动态表名的配置详解
mybatis plus简介 详见mybatis plus的官网 业务要求 业务上要求存储数据的时候根据某个字段动态的选择数据要存储的表. 如根据code字段: code->[1001,1002]来进行选择存储的表: 经过下面的配置实现动态表名如 --> table1_1001,table_1002的效果.以此动态生成表名的效果. 具体实现 MPConfig.java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.J
随机推荐
- Oracle性能究极优化 下
- 高效利用Angular中内置服务$http、$location等
- 文本加密解密
- VBS教程:运算符-除运算符 (/)
- Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
- php使用wordwrap格式化文本段落的方法
- ASP中文本文件与数据库文件的数据交换(FSO)
- 关于mysql innodb count(*)速度慢的解决办法
- Android仿新浪微博、QQ空间等帖子显示(2)
- js中跨域方法原理详解
- js数据向上翻滚_数据滚动
- 在Python的web框架中中编写日志列表的教程
- PHP VBS JS 函数 对照表
- jQuery日历插件datepicker用法详解
- jQuery 方法大全方便学习参考
- Node连接mysql数据库方法介绍
- HTTP 304错误的详细讲解
- 微信小程序 POST请求的实例详解
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法
- PHP使用CURL模拟登录的方法