草庐IT

Mybatis-plus 主键生成策略详解

1.1简述Mybatis-plus提供了多种主键生成策略,可以在Pojo类中主键上加注解进行配置,例如数据库主键自增@TableId(type=IdType.AUTO)1.2五种策略1.2.1AUTO(自动增长策略)AUTO自动增长策略,这个配合数据库使用,Mysql可以,但是Oracle不行。不配合会报错,这里就不细展开了,有兴趣的同学可以去试一试。在主键字段上加上@TableId(type=IdType.AUTO)@DatapublicclassUserInfo{//指定主键使用数据库ID自增策略@TableId(type=IdType.AUTO)privateIntegerid;priv

【LogBack日志】打印mybatis中sql日志并存放到指定文件中

前言:在springboot中使用logbac-spring.xml单独打印mybaits中的sql,另存一个单独的日志中。1、yml配置#日志配置logging:level:com.xxxx.mapper:debugorg.springframework:warnconfig:classpath:logback-app.xmlfile:path:./logs/app2、logback-spring.xmlconfiguration>propertyresource="application.yml"/>springPropertyscope="context"name="FILE_PATH"

Spring Boot中使用Redis

目录1.依赖2.依赖关系3.配置4.RedisTemplate5.基础操作6.事务1.依赖maven依赖如下,需要说明的是,spring-boot-starter-data-redis里默认是使用lettuce作为redis客户端的驱动,但是lettuce其实用的比较少,我们常用的还是jedis作为客户端的驱动,所以这里排除掉lettuce,引入jedis:org.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedis2.依赖关系springdataredis中依赖的关

Spring Boot中使用Redis

目录1.依赖2.依赖关系3.配置4.RedisTemplate5.基础操作6.事务1.依赖maven依赖如下,需要说明的是,spring-boot-starter-data-redis里默认是使用lettuce作为redis客户端的驱动,但是lettuce其实用的比较少,我们常用的还是jedis作为客户端的驱动,所以这里排除掉lettuce,引入jedis:org.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedis2.依赖关系springdataredis中依赖的关

Invalid bound statement (not found)

目录一、遇到的问题二、分析思路1、映射文件2、测试类三、解决方案一、遇到的问题前几日,有个工作不久的同事找我帮他解决一个Mybatis的问题。他写了一个增删改查,但是在启动程序的时候报错:Invalidboundstatement(notfound)。他试图解决该异常,花了一个小时还是没有解决,所以向我求助。所谓当局者迷,我帮他梳理了一下开发逻辑,几分钟后他发现了问题,并解决了该异常。刚工作两三年的开发者特别容易碰到该异常,但是只要理清思路,就很容解决问题。我将分析问题的思路记录一下,希望能帮到你。二、分析思路Mybatis开发有两种方式,一种是原始Dao开发方式,另一种是Mapper动态代理

Invalid bound statement (not found)

目录一、遇到的问题二、分析思路1、映射文件2、测试类三、解决方案一、遇到的问题前几日,有个工作不久的同事找我帮他解决一个Mybatis的问题。他写了一个增删改查,但是在启动程序的时候报错:Invalidboundstatement(notfound)。他试图解决该异常,花了一个小时还是没有解决,所以向我求助。所谓当局者迷,我帮他梳理了一下开发逻辑,几分钟后他发现了问题,并解决了该异常。刚工作两三年的开发者特别容易碰到该异常,但是只要理清思路,就很容解决问题。我将分析问题的思路记录一下,希望能帮到你。二、分析思路Mybatis开发有两种方式,一种是原始Dao开发方式,另一种是Mapper动态代理

Mybatis-plus批量操作

前言    使用Mybatis-plus可以很方便的实现批量新增和批量修改,不仅比自己写foreach遍历方便很多,而且性能也更加优秀。但是Mybatis-plus官方提供的批量修改和批量新增都是根据id来修改的,有时候我们需求其他字段,所以就需要我们自己修改一下。一、批量修改    在Mybatis-plus的IService接口中有updateBatchById方法,我们常用以下方法根据id批量修改数据。@Transactional(rollbackFor=Exception.class)defaultbooleanupdateBatchById(CollectionentityList)

Mybatis-plus---的批量插入

批量插入一、继承IService(伪批量)二、insertBatchSomeColumnMybatis-plus很强,为我们诞生了极简CURD操作,但对于数据批量操作,显然默认提供的insert方法是不够看的了,于是它和它来了!!!Mybatis-plus提供的两种插入方式        继承IService(伪批量)        insertBatchSomeColumn 一、继承IService(伪批量)在Mapper继承BaseMapperimportcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.example.de

Mybatis新增数据,存在就更新,不存在就添加,Mysql避免重复插入数据的4种方式

01 insert ignoreinto即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:02onduplicatekeyupdate即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接

Java项目防止SQL注入的方式总结

目录一、什么是SQL注入?二、Java项目防止SQL注入方式1、PreparedStatement防止SQL注入2、mybatis中#{}防止SQL注入3、对请求参数的敏感词汇进行过滤4、nginx反向代理防止SQL注入一、什么是SQL注入?        SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。SQL案列Stringsql="deletefromtable1whereid