前言上次我们工具类对传入的时间数据进行了切割,这次就是使用date_format()函数对数据库存储的事件类型数据进行切割,并查出符合条件的数据。DATE_FORMAT()函数介绍DATE_FORMAT()函数接受两个参数:date:是要格式化的有效日期值/字段名format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)例如:SELECTstudent_name,DATE_FORMAT(created_time,'%Y')FROMstudentWHEREdeleted=0ANDDATE_FORMAT(created_time,'%Y')='2019'即是将创建时间
问题描述在使用mybatis-plus的过程中,有一个jsonb字段使用了jsonb_exists_any(field_name,text[])作为where条件查询,执行sql如下:SELECT* FROMtable_name WHERE jsonb_exists_any(field_name,ARRAY['110544709344','12564892357'])上面的sql在navicat中执行正常,所以sql没有问题,但是在mybatis-plus的xml文件中使用就会报错,异常信息如下:Causedby:net.sf.jsqlparser.JSQLParserException:E
目录前言:事务的相关问题1、什么是事务?2、事务的特点(ACID)3、什么时候想到使用事务?4、通常使用JDBC访问数据库,还是mybatis访问数据库,怎么处理事务?5、问题中事务处理的方式有什么不足?6、怎么解决不足?7、处理事务,需要怎么做,做什么?8、事务的隔离级别9、事务的超时时间10、事务的传播行为springboot中配置事务以及使用:1、进行配置类的处理2、创建数据资源配置类:3、实际代码里面调用实践:总结:前言:目前大多数的项目都是通过spring或者springboot来开发的,并且项目里面操作数据库常用的有mybatis\mybatis-plus等,在操作数据库的时候,经
1.思路分析:批量插入是我们日常开放经常会使用到的场景,一般情况下我们也会有两种方案进行实施,如下所示。方案一就是用for循环循环插入:优点:JDBC中的PreparedStatement有预编译功能,预编译之后会缓存起来,后面的SQL执行会比较快并且JDBC可以开启批处理,这个批处理执行非常给力。缺点:很多时候我们的SQL服务器和应用服务器可能并不是同一台,所以必须要考虑网络IO,如果网络IO比较费时间的话,那么可能会拖慢SQL执行的速度。再来说第二种方案,就是生成一条SQL插入:优势:这种方案的优势在于只有一次网络IO,即使分片处理也只是数次网络IO,所以这种方案不会在网络IO上花费太多时
Mybatis的插件,主要用于在执行sql前后,对sql进行封装加工,或者在sql执行后,对数据进行加工处理。常用于一些公共数据操作处理,例如:分页插件,在执行sql查询前增加分页参数多租户系统中,增加租户ID参数。增加更新时间、创建时间、更新人、创建人的参数信息。数据权限中,增加参数查询。插件开发过程确定需要拦截的签名指定需要拦截的方法,通过方法签名来指定,方法签名即指定哪个类的哪个方法+方法参数。这里的类不能随便写,只能从以下几个类中选,也就是说,MyBatis插件可以拦截四大对象中的任意一个。Executor 是执行SQL的全过程,包括组装参数,组装结果集返回和执行SQL过程,都可以拦截
一、简单的insert方法1.UserMapper.xmlinsertintosys_user(user_name,user_password,user_email,user_info,head_img,create_time)values(#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg,jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})1.指定特殊数据类型(1)为了防止类型错误,对于些特殊的数据类型,建议指定具体的jdbcTypeheadimg指定BLOB类型,crea
MyBatis中#{}和${}的用法说一下为什么要写这篇文章,最近面试有被问到,一下子想不出来有啥区别,想记录一下加深自己的理解,同时自己也经常用MyBatis-Plus忽略了XML文件的编写和使用,所以需要加深一下这块的知识一、例子1、#{}将传入的数据当作一个字符串,会对传入的数据加上一个双引号。比如select*fromstudentwherestudent_name=#{studentName}如果传入的值为zhangxiangwei,那么经过Mybatis解析完成之后的语句是select*fromstudentwherestudent_name="zhangxiangwei"2.${
allowMultiQueries=true参数的作用:可以在sql语句后携带分号,实现多语句执行。可以执行批处理,同时发出多个SQL语句。在application-xxx.xml配置文件中,配置数据库的信息spring:datasource:dynamic:primary:mysqldb#默认数据源datasource:mysqldb:driverClassName:org.mariadb.jdbc.Driverurl:jdbc:mysql://localhost:3306/data_dev?useUnicode=yes&characterEncoding=UTF-8&useAffected
1环境准备mybatis-config.xmlUsersMapper.xmlselect*fromt_usersUsersMapper.javapackagecom.pack.mapper;importjava.util.List;importcom.pack.domain.Users;publicinterfaceUsersMapper{ListselectList();}Users.javapublicclassUsers{privateStringid;privateStringusername;privateStringpassword;}UsersMapperTest.java测试类
文章目录1.前言2.准备工作3.查询所有数据3.1编写接口方法3.2编写sql语句3.3编写测试方法3.4resultMap的使用4.查询详情4.1编写接口方法4.2编写sql语句4.3编写测试方法4.4参数占位符4.5parameterType使用4.6特殊字符的处理5.多条件查询5.1编写接口方法5.2编写sql语句5.3编写测试方法5.4动态SQL6.动态SQL的单条件查询