荒--
这个作者很懒,什么都没留下…
展开
-
Mybatis-Plus
Mybatis-Plus是一个Mybatis框架的增强插件,根据官方描述,MP只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑.并且只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间.代码生成,分页,性能分析等功能一应俱全下面采用案例的方式进行演示 Springboot + Mybatis-Plus导包如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/P原创 2021-08-28 10:24:38 · 178 阅读 · 0 评论 -
Springboot集成PageHelper
导包大致如下:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><!-- SpringBoot/MyBatis使用PageHelper分页控件 --><dependency> <groupId>com.github.pagehelper</g原创 2021-08-23 21:30:30 · 128 阅读 · 0 评论 -
Mybatis缓存(三)
集成EhCache缓存EhCache是一个纯粹的 Java 进程内的缓存框架,具有快速、精干等特点。具体来说,EhCache 主要的特性如下:• 快速• 简单• 多种缓存策略• 缓存数据有内存和磁盘两级,无须担心容量问题• 缓存数据会在虚拟机重启的过程中写入磁盘• 可以通过 RMI 、可插入 API 等方式进行分布式缓存• 具有缓存和缓存管理器的侦听接口• 支持多缓存管理器实例以及一个实例的多个缓存区域因为以上诸多优点 MyBatis 项目开发者最早提供了EhCache的MyBatis二原创 2021-08-20 22:01:58 · 107 阅读 · 0 评论 -
Mybatis缓存(二)
在前面的缓存中提到了二级缓存的配置,按照之前的配置即可,对RoleMapper配置了二级缓存后,当调用RoleMapper的select方法查询,二级缓存就已经开始起作用了。需要注意的是,由于配置的是可读写缓存,而Mybatis使用SerializedCache( org.apache.ibatis.cache.decorators.SerializedCache)序列化缓存来实现可读写缓存类,并通过序列化和反序列化来保证通过缓存获取数据是,得到的是一个新的实例。因此,如果配置为只读缓存,Mybatis就原创 2021-08-19 21:08:13 · 112 阅读 · 0 评论 -
Mybatis对Java8日期(JSR-310)的支持
MyBatis从 3.4.0 版本开始增加了对 Java 8 日期OSR-310的支持。 如果使用3.4.0及以上版本,只需要在 Maven的pom.xrnl 中添加如下依赖即可<!-- 对java8日期的支持 --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-typehandlers-jsr310</artifactId> <versi原创 2021-08-17 21:19:40 · 555 阅读 · 0 评论 -
Mybatis缓存(一)
使用缓存可以使应用更快的获取数据,避免频繁的数据库交互,Mybatis提供了非常强大的查询缓存特性,一般提到的Mybatis缓存都是指二级缓存。一级缓存(本地缓存)默认会启用,并且不能控制,因此很少会提到。一级缓存通过以下案例查看Mybatis一级缓存如何起作用测试代码如下package tk.mybatis.simple.mapper;import org.apache.ibatis.session.SqlSession;import org.junit.Assert;impor原创 2020-11-10 10:11:05 · 153 阅读 · 0 评论 -
存储过程(MYSQL)
第一个存储过程#根据用户ID查询其他数据DROP PROCEDURE IF EXISTS select_user_by_id;DELIMITER ;;CREATE PROCEDURE select_user_by_id(IN userId BIGINT,OUT userName VARCHAR(50),OUT userPassword VARCHAR(50),OUT userEmail VARCHAR(50),OUT userInfo TEXT,OUT headImg BLOB,O原创 2020-10-31 15:57:41 · 149 阅读 · 0 评论 -
鉴别器映射
鉴别器映射类似于java中的switch,用于判断,标签discriminator在RoleMapper.xml中增加如下代码:<resultMap type="SysRole" id="rolePrivilegeListMapChoose"> <discriminator javaType="int" column="enabled"> <case value="1" resultMap="rolePrivilegeListMapSelect"/>原创 2020-10-24 15:28:02 · 146 阅读 · 0 评论 -
MyBatis--高级查询(三)
一对多时候使用collection集合的嵌套查询我们知道association关联的嵌套查询这种方式会执行额外的SQL查询,映射配置会简单很多,关于collection的映射配置,结合上一节association的内容,仍然以selectAllUserAndRoles为基础,以两层嵌套结果为目标,将该方法修改为集合嵌套查询方式22222...原创 2020-10-20 21:21:00 · 98 阅读 · 0 评论 -
MyBatis--高级查询(二)
一对多映射假设在RBAC权限系统中,一个用户只能拥有一个角色,把用户和角色之间的关系限制为一对一的关系,一对一映射不需要考虑是否存在重复原创 2020-10-13 21:10:28 · 115 阅读 · 0 评论 -
MyBatis--高级查询(一)
一对一映射假设在RBAC权限系统中,一个用户只能拥有一个角色,把用户和角色之间的关系限制为一对一的关系,一对一映射不需要考虑是否存在重复数据使用自动映射处理一对一的关系,一个用户拥有一个角色,在SysUser类中增加SysRole属性,其余属性保持不变/** * 用户角色 * @return */private SysRole role;public SysRole getRole() { return role;}public void setRole(SysRole ro原创 2020-10-05 10:28:56 · 276 阅读 · 0 评论 -
MBG MyBatis代码生成器(二)
运行MyBatis GeneratorMBG提供了很多种运行的方式,常见的有以下四种使用Java编写代码运行 从命令提示符运行 使用Maven Plugin运行 使用Eclipse插件运行在使用MBG之前需要将MBG的jar包添加到项目中,依赖如下<!-- MBG 代码生成器 --><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>myba原创 2020-10-01 19:52:44 · 160 阅读 · 0 评论 -
MBG MyBatis代码生成器(一)
案例中使用的是MBG 1.3.3配置文件模板如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><gener原创 2020-09-22 21:26:42 · 158 阅读 · 0 评论 -
OGNL用法
在Mybatis的动态SQL和${}形式的参数中都用到了OGNL表达式,下面是常用的OGNL表达式e1 or e2 e1 and e2 e1 == e2,e1 eq e2 e1 != e2,e1 neq e2 e1 lt e2:小于 e1 lte e2:小于等于,其他gt(大于),gte(大于等于) e1 in e2 e1 not in e2 e1 + e2,e1 * e2,e1/e2,e1 - e2,e1%e2 !e,not e:非,求反 e.method(args)调用对象方法原创 2020-09-20 14:10:41 · 320 阅读 · 0 评论 -
MyBatis--动态SQL(五)
foreach实现批量插入批量插入用户信息UserMapper接口:/** * 批量插入用户信息 * @param userList * @return */int insertList(List<SysUser> userList);UserMapper.xml文件:<!-- 批量插入用户信息 --><insert id="insertList" keyProperty="id" useGeneratedKeys="true"> IN原创 2020-09-20 11:07:08 · 117 阅读 · 0 评论 -
MyBatis--动态SQL(四)
foreach标签foreach 实现in集合(或数组)查询原创 2020-09-19 22:24:33 · 89 阅读 · 0 评论 -
MyBatis--动态SQL(三)
where set trim 三个标签的用法where标签如果该标签包含的元素中有返回值,就插入一个where,如果where后面的字符串是以AND 和OR开头的,就将其踢出UserMapper接口:/** * WHERE标签的使用 * @param sysUser * @return */List<SysUser> selectByUser2(SysUser sysUser);UserMapper.xml文件:<!-- WHERE标签的使用 --...原创 2020-09-19 10:30:46 · 115 阅读 · 0 评论 -
MyBatis--动态SQL(二)
在WHERE条件中使用IFUserMapper接口:/** * WHERE 条件中使用if * 当只输入用户名的时候 做模糊查询 * 当只输入邮箱的时候 做完全匹配查询 * 当用户名和邮箱都输入时,要同时匹配两个条件 * @param sysUser * @return */List<SysUser> selectByUser(SysUser sysUser);UserMapper..xml文件:<!-- WHERE 条件中使用if --><原创 2020-09-15 22:30:26 · 102 阅读 · 0 评论 -
MyBatis--动态SQL(一)
之前的项目中已经实现了(根据笔记ID修改笔记的功能)其中Dao接口为方法一://在编辑笔记区域根据笔记ID修改笔记,返回影响数据的条数(两个方法功能相同,第二个方法使用动态SQL)public int updateNote(Note note);public int updateNoteByMap(Map<String,Object> map);现在使用动态SQL来实...原创 2017-09-04 17:06:16 · 247 阅读 · 0 评论 -
Mybatis注解方式基本用法
在Mybatis注解SQL中,最基本的就是@Select、@Insert、@Update、@Delete@Select注解RoleMapper接口:package tk.mybatis.simple.mapper;import org.apache.ibatis.annotations.Select;import tk.mybatis.simple.model.SysRole;public interface RoleMapper { //通过角色id查询角色 @Select({原创 2020-09-13 14:39:56 · 227 阅读 · 0 评论 -
Mybatis中DAO接口参数的用法
在Mybatis中DAO接口对于参数的传递有严格控制,方法中没有参数或一个参数(Map)在实际应用的时候,需要传递多个参数,有三种方式如下:通过JavaBean(User user)实体对象来传递,对象里包含多个属性作为参数 将多个参数放于Map中,key是参数名,value是参数的值 通过@Param注解方式第一种方式博客里面已经有了,下面讲解第二种和第三种22222...原创 2020-09-13 13:30:41 · 533 阅读 · 0 评论 -
返回主键的两种方式
方式一使用JDBC方式返回主键自增的值(MYSQL、SQL Server),该方式只适应于支持自增主键的数据库下面以INSERT案例来返回主键实体类:public class SysUser { private Long id;//用户ID private String userName;//用户名 private String userPassword;//密码 private String userEmail;//邮箱 private String userInfo;//简介原创 2020-09-13 10:28:56 · 1396 阅读 · 0 评论 -
INSERT用法及其注意事项
模拟在数据库sys_user表插入一条数据接口如下/** * 新增用户 * @param sysUser * @return */int insert(SysUser sysUser);UserMapper.xml如下<!-- 新增用户 在insert和update语句中是没有resultType jdbcType=BLOB 二进制数据流 数据库要指定日期类型 data time datatime 对应的JDBC类型分别为 DATE原创 2020-09-12 21:20:05 · 2064 阅读 · 0 评论 -
多表查询中获取多个表的字段实现
数据准备用户表 sys_userpublic class SysUser { private Long id;//用户ID private String userName;//用户名 private String userPassword;//密码 private String userEmail;//邮箱 private String userInfo;//简介 private byte[] headImg;//头像 private Date createTime;//创建时间原创 2020-09-12 11:50:26 · 893 阅读 · 0 评论 -
关于mybatis 传入基本参数类型使用if test 判断出错的问题等注意事项
在使用mybatis传入基本参数类型时,比如parameterType="java.lang.Long",使用if test 判断会报错,所以需要使用_parameter 当做入参正确代码:<select id="findById" parameterType="java.lang.Long" resultMap="BaseResultMap">select...原创 2019-11-11 12:13:38 · 1081 阅读 · 0 评论 -
Mybatis关联映射(关联多个对象)
Mybatis关联映射什么是关联映射?将数据库中有关系的表以实体对象引用的方式体现出来几种关联方式?在Mybatis中有两种关联:关联单个对象和关联多个对象什么时候使用?业务需要对数据库进行关联查询的时候(通过一条或两条SQL语句进行关联查询)----------------------------------------------------------------...原创 2017-08-25 17:12:05 · 3174 阅读 · 0 评论 -
Mybatis关联映射(关联单个对象)
案例:关联查询出List<Book>(含有User属性)(查询所有的笔记本)修改Book的实体类,添加User属性需要添加属性如下://后添加的User属性,用于关联查询private User user;public User getUser() { return user;}public void setUser(User user) { this.use...原创 2017-09-03 11:49:58 · 1475 阅读 · 0 评论 -
MyBatis--动态SQL原笔记(无案例)
动态SQL什么是?系统运行过程中,动态生成的SQL语句为什么?当我们不能确定用户操作,所要使用的具体SQL的时候.案例: 搜索笔记功能 按用户名 笔记本名 笔记名 搜索 搜索功能 按用户 A B C select * from cn_note where userName=#{} and bookName=#{} and noteTitle=#{}...原创 2017-09-04 17:13:55 · 198 阅读 · 0 评论 -
POJO和javabean的异同
说实在话,在印象里。这两个概念一直觉得是一样的,分不清他们的区别。今天特地在网上找了一篇文章(谢谢博主@lushuaiyin的分享),觉得讲的很不错。所以分享一下:什么是POJO 按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的Java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任原创 2017-06-21 22:42:56 · 269 阅读 · 0 评论 -
Mapper映射器的使用
Mapper映射器Mapper映射器是什么?是符合映射文件要求的接口。注:myBatis会依据该接口的要求生成一个相应的实例。具体要求:a. 方法的名称必须与sql的id一样。b. 方法的返回值类型必须与sql的resultType一样。c. 方法的参数类型必须怀sql的parameterType一样。d. 映射文件的namespace必须等于该接口的完原创 2017-06-21 17:28:27 · 1284 阅读 · 0 评论 -
mybatis中的分页
一、使用RowBounds映射文件: <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> SELECT * FROM原创 2017-06-21 15:49:42 · 216 阅读 · 0 评论 -
mybatis中两个配置文件的写法
myBatis(1)myBatis是什么?是一个开源的持久层框架。注:myBatis底层仍然是jdbc。(2)编程步骤step1. 导包。mybatis,ojdbc,junit。step2. 添加配置文件。注:配置文件主要包含连接池的配置和映射文件的位置。step3. 写实体类。注:属性名必须跟表的字段名一样(大小写不区分)。step4. 写映射文件。注:映射文件主...原创 2017-06-21 11:19:28 · 622 阅读 · 0 评论 -
mybatis中的#和$的区别
介绍 MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型。 在SQL中引用这些参数的时候,可以使用两种方式#{parameterName}或者${parameterName}。#{} #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。...转载 2017-06-18 22:12:30 · 222 阅读 · 0 评论