TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码
搜索到 11 篇与 的结果
2022-02-06

MyBatis在xml文件中使用中文字符

MyBatis在xml文件中使用中文字符
大多数情况下,我们在xml中使用if标签的时候,都是判断是否为空或null,像下面这样<if test="carId != null and carId != ''"> and condition </if>但是有时候,我们比较的值可能是字符甚至汉字,其实字符也还好说,正常使用即可,像下面这样<if test="carId != null and carId != 'A'"> and condition </if>但是如果你使用的是汉字,那么事情就没那么简单了。对于汉字的比较,我们可以像下面这样处理<if test="oilType != null and '电'.toString() neq oilType"> and oil_type <![CDATA[<>]]> #{oilType} </if>注意看上面,在汉字后面要加上.toString(),不然...
Laughing
2022-02-06

Java

1,507 阅读
0 评论
2022年02月06日
1,507 阅读
0 评论
2022-02-02

MyBatis-Plus更新部分字段

MyBatis-Plus更新部分字段
使用MyBatis-Plus时,有时候我们在更新实体时,可能只想更新部分字段。下面介绍两种更新部分字段的方法。一、先查询后更新的方式这种方式不是很好,说白了就是先执行一遍查询,查询到实体后,设置修改的属性,再次调用update方法更新,这样MyBatis只会更新修改的字段。二、通过UpdateWrapper更新 LambdaUpdateWrapper<OilUser> userUpdateWrapper = new LambdaUpdateWrapper<>(); userUpdateWrapper.set(OilUser::getUsername, user.getUsername()); userUpdateWrapper.set(OilUser::getNickName, user.getNickName()); userUpdateWrapper.set(OilUser::getTel, user.getTel()); userUpdateWrapper...
Laughing
2022-02-02

Java

1,809 阅读
0 评论
2022年02月02日
1,809 阅读
0 评论
2021-06-11

Spring Boot 使用mybatis-plus逻辑删除选装件

Spring Boot 使用mybatis-plus逻辑删除选装件
试想一下我们的系统,我们所有的表都有五个字段,分别是创建者(create_by)、创建时间(create_time)、修改者(update_by)、修改时间(update_time)、删除标志(del_flag), 同时通过mybatis拦截器,自动注入创建人、创建时间、修改人、修改时间。目前在数据库新增,能自动注入创建人、创建时间,修改时,能自动注入修改人、 修改时间。如果我们调用mybatis-plus提供的删除方法(deleteById),既然是逻辑删除,我们设想的肯定是此时能够自动注入修改人、修改时间,但是,实际测试你会发现,此时sql并没有注入修改人、修改时间。为了解决这个问题,mybatis-plus提供了一个LogicDeleteByIdWithFill的逻辑删除组装件。通过此方法,我们在进行逻辑删除时,便能自动注入修改人、修改时间。继承DefaultSqlInjector/** * Description:官方逻辑删除选装件 * * @author : laughing * DateTime: 2021-06-11 15:21 */ @Component...
Laughing
2021-06-11

Java

1,331 阅读
0 评论
2021年06月11日
1,331 阅读
0 评论
2021-05-11

mybatis-plus逻辑删除不生效的解决办法

mybatis-plus逻辑删除不生效的解决办法
我们在使用mybatis-plus时,一般设备逻辑删除是非常简单的,基本上在yaml等配置文件中做一下配置。然后在字段上注解@TableLogic就可以了。有不清楚的,可以参考https://www.xiangcaowuyu.net/java/mybatis-plus-logical-deletion.html但是今天在项目中,发现一个问题,就是明明也正确的进行了配置,但是在进行数据库操作时,发现逻辑删除并没有生效。问题描述先说一下问题先想,数据库指定的字段可以使用,但是指定是否逻辑删除的值时还是mybatis-plus默认的0和1,并不是我指定的N和Y。配置文件先来看下我的配置文件。mybatisPlus: # 搜索指定包别名 typeAliasesPackage: net.xiangcaowuyu.**.domain # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml global-config: db-config: # 配置逻辑...
Laughing
2021-05-11

Java

1,529 阅读
0 评论
2021年05月11日
1,529 阅读
0 评论
2021-05-11

mybatis plus 出现 Invalid bound statement (not found)

mybatis plus 出现 Invalid bound statement (not found)
使用mybatis-plus时不能使用自带的SqlSessionFactory,要使用MybatisSqlSessionFactory,在配置类中加入如下配置(springboot) @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { String typeAliasesPackage = env.getProperty("mybatisPlus.typeAliasesPackage"); String mapperLocations = env.getProperty("mybatisPlus.mapperLocations"); String configLocation = env.getProperty("mybatisPlus.configLocation"); typeAliasesPackage = setT...
Laughing
2021-05-11

Java

1,020 阅读
0 评论
2021年05月11日
1,020 阅读
0 评论
2021-05-07

mybatis-plus自动注入sql语句

mybatis-plus自动注入sql语句
我们在日常开发中,一般会在表里面增加创建人(create_by)、创建时间(create_time)、修改人(update_by)、修改时间(update_time)四个字段。创建人:新增时,通过上下文获取用户信息。创建时间:新增时,获取系统当前时间。修改人:修改时,通过上下文获取用户信息。修改时间:修改时,获取系统当前时间。对于这种公共的字段,如果每次都在Sql中进行处理,那是相当繁琐也是没必要的。如果你用的是MyBatis-Plus那么一切就变的简单了。继承mybatis的Interceptor拦截器/** * Description: mybatis拦截器,自动注入创建人、创建时间、修改人、修改时间 * * @author : laughing * DateTime: 2021-05-06 17:13 */ @Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})}) @Slf4j...
Laughing
2021-05-07

Java

1,099 阅读
0 评论
2021年05月07日
1,099 阅读
0 评论
2021-04-24

Spring Boot 2.0+ ByBatis-Plus动态切换数据源

Spring Boot 2.0+ ByBatis-Plus动态切换数据源
前端时间做了一个SaaS的应用,也是第一次弄SaaS相关软件。系统设计的不同租户之前是数据库级别的隔离。所以核心的内容基本就是如何实现不同之间的数据源的切换。创建模拟数据库创建两个数据库,分别命名为dynamic_datasource_one和dynamic_datasource_two,两个数据库内分别创建两张表,分别名称为table_one和table_two。数据库名表名dynamic_datasource_onetable_onedynamic_datasource_twotable_two创建表的Sql如下:create table table_one ( id bigint auto_increment primary key, name varchar(30) null ); INSERT INTO table_one (id, name) VALUES (1, 'dynamic_datasource_one'); create table table_two ( id bigint auto_increment ...
Laughing
2021-04-24

Java

877 阅读
0 评论
2021年04月24日
877 阅读
0 评论
2021-04-22

mybatis-plus基于p6spy执行 SQL 分析打印

mybatis-plus基于p6spy执行 SQL 分析打印
书接上文,MyBatis-Plus简易使用教程该功能依赖 p6spy 组件,完美的输出打印 SQL 及执行时长 3.1.0 以上版本。添加p6spy依赖<!--输出打印sql--> <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.7</version> </dependency>配置数据库驱动spring: datasource: url: jdbc:p6spy:mysql://localhost:3306/mybatisplus username: root password: 123456 driver-class-name: com.p6spy.engine.spy.P6SpyDriver配置p6spy在resources文件夹下增加spy.properties文件,内容如下#3.2.1以上使用...
Laughing
2021-04-22

Java

1,142 阅读
0 评论
2021年04月22日
1,142 阅读
0 评论
2021-04-22

mybatis-plus基于行级别的多租户实现

mybatis-plus基于行级别的多租户实现
什么是多租户多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。简单讲:在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重点就是同一套程序下实现多用户数据的隔离。多租户架构以及数据隔离方案方案一:独立数据库即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。缺点:增多了数据库的安装数量,随之带来维护成本和购置成本的增加。方案二:共享数据库,独立 Schema也就是说 共同使用一个数据库 使用表进行数据隔离多个或所有租户共享Database,但是每个租户一个Schema(也可叫做一个user)。底层库比如是:DB2、ORACLE等,一个数据库下可以有多个SCHEMA。优点:...
Laughing
2021-04-22

Java

1,292 阅读
0 评论
2021年04月22日
1,292 阅读
0 评论
2021-04-22

MyBatis-Plus逻辑删除

MyBatis-Plus逻辑删除
逻辑删除::: tip 说明:只对自动注入的sql起效:插入: 不作限制查找: 追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段更新: 追加where条件防止更新到已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段删除: 转变为 更新例如:删除: update user set deleted=1 where id = 1 and deleted=0查找: select id,name,deleted from user where deleted=0字段类型支持说明:支持所有数据类型(推荐使用 Integer,Boolean,LocalDateTime)如果数据库字段使用datetime,逻辑未删除值和已删除值支持配置为字符串null,另一个值支持配置为函数来获取值如now()附录:逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。使用方法:步骤1: MySql表结构create table if n...
Laughing
2021-04-22

Java

2,095 阅读
0 评论
2021年04月22日
2,095 阅读
0 评论
2021-04-22

MyBatis-Plus简易使用教程

MyBatis-Plus简易使用教程
添加依赖添加MyBatis-plus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>配置初始化数据库演示SQL脚本如下CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) )INSERT INTO user (id, ...
Laughing
2021-04-22

Java

861 阅读
0 评论
2021年04月22日
861 阅读
0 评论