一、什么是动态SQL之if语句 if很简单了,就是满足条件就执行,不满足条件不执行。 那么动态SQL中的if语句是怎么样的呢? 首先我们来看一张表blog: 如果我们执行下面的SQL语句: select * from blog 肯定会将所有的数据都查出来。那么我们可以在后面加上where条件进行筛选,那么如
语法:select * from user limit startIndex,pageSize select * from user limit 0,2 mybatis分页查询 添加接口 // 分页查询 List<User> getUserListLimit(Map<String,Object> value); 映射绑定 <select id="getUserListLimit" parameterType="map&qu
工具类里面一般是静态方法,通过把读取mybatis主配置文件获取SqlSession的一些列繁琐步骤封装成工具类,减少代码量。 Mybatis工具类 src/main/java/com/oxygen/utils/MybatisUtil.java package com.oxygen.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis
1.加载核心配置文件 //加载mybatis核心配置文件,获取SqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBu
创建mysql数据库ssm CREATE TABLE `t_user` ( `id` int(32) DEFAULT NULL, `username` varchar(32) DEFAULT NULL, `password` varchar(32) DEFAULT NULL, `age` int(32) DEFAULT NULL, `sex` varchar(2) DEFAULT NULL, `mail` varchar(32) DEFAULT NULL) ENGINE=I
1.Mybatis核心对象 MyBatis 有三个基本要素: 核心接口和类 MyBatis核心配置文件(mybatis-config.xml) SQL映射文件(mapper.xml) 1.1 核心接口和类 每个 MyBatis 应用程序都以一个 SqlSessionFactory 对象的实例为核心。首先获取 SqlSessionFactoryBuilder 对象,可以根据 XML 配置文件
环境准备 导入POM依赖 <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!--mybatis 依赖-->
MyBatis 的常用注解 注解可以减少 Mapper 文件的编写,常用注解如下; @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以和@Result 一起使用,封装多个结果集 @One:实现一对一结果集封装 @Many:实现多对多结果集封装 MyBatis 的增删
Mybatis基本流程 1、利用Resources工具类加载配置文件,并转换成输入输出流 2、利用解析的配置,创建SqlSessionFactory工厂 3、生产SqlSession 4、SqlSession调用方法 Mybatis配置文件分析 sqlMapConfig.xml MyBatis核心配置文件层级 MyBatis常用配置解析 输出日志,在sqlMapConfig.xm
快速入门 Mybatis的官网:https://mybatis.org/mybatis-3/ MyBatis的开发步骤 添加MyBatis的坐标 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <
1. 通过用户名模糊查询用户信息 SpecialSQLMapper.java public interface SpecialSQLMapper { List<User> getUserByLike(@Param("mohu") String mohu); } SpecialSQLMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map
1. Mybatis的一级缓存 Mybatis的一级缓存是默认开启的,你只要搭建一个Mybatis框架,就可以直接使用一级缓存。 一级缓存是SqlSession级别的,通过SqlSession查询的数据会被缓存,下次使用同一个SqlSession查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问,减轻数据库压力。 条件:
封装SqlSessionUtils /** * 获取SqlSession * @param b 是否自动管理事务 * @return 返回sqlsession */ public static SqlSession getSqlSession(boolean b){ SqlSession sqlSession = null; try {
MyBatis缓存 只对查询功能有效 一级缓存 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 一级缓存失效的四种情况 1、不同的SqlSeesion对应不同的一级缓存 2、同一个SqlSession但是查询条件不同 3
mybatis 难点: 一对多多对一 动态SQL 1.1 什么是Mybatis 如何获得Mybatis maven仓库: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</
一、简介 1.什么是MyBatis MyBatis 是一款优秀的持久层框架 它支持自定义 SQL、存储过程以及高级映射。 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java O
1、MyBatis的简介 1)什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Obje
一、MyBatis 1、MyBatis简介 1.1、MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBatis一词来源于
package com.atguigu.mybatis.test; import com.atguigu.mybatis.mapper.UserMapper; import com.atguigu.mybatis.pojo.User; import com.atguigu.mybatis.utils.SqlSessionUtil; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; imp
目录1. 简介1.1什么是Mybatis1.2 如何获得Mybatis1.3 使用Mybatis的好处:2.初涉Mybatis2.1环境搭建2.2、创建一个模块(项目)2.3、使用Mybatis的三个重要类3.Mybatis的CRUD简单实现3.1、通过id查找用户:3.2、插入用户:3.3、根据id更改用户名字:3.4、 根据id删除用户:3.5、好用的Map3.6、模
动态sql 根据不同的环境生成不同的sql if choose (when, otherwise) trim (where, set) foreach if 使用动态 SQL 最常见情景是根据条件包含 where 子句的一部分。 如果传入name就根据name查询,如果输入age就根据age查询,如果不输入就全部查询。 这里还使用了一对标签主
缓存 因为频繁的查询会很消耗资源,所以将经常查询且不经常修改的结果暂时放在内存中,需要的时候直接取一下。 一级缓存:默认开启 SQLSession级别,SQLSession关闭则失效 二级缓存:手动开启,作用于一个命名空间 测试一级缓存 创建两次相同的查询,返回两个数,可以在下面的截图中看到,只创
缓存介绍 1. MyBatis的缓存级别 缓存概念上对比 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询的结果会被
SqlSession SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);//第二个参数为是否自动提交,为true则执行一次sql就提交,若为false则表示开启事务 TbTestMapper tbTestMapper = sqlSession.getMapper(TbTestMapper.class)
Map和模糊查询拓展 概述 本文主要讲利用map类型进行参数传入和使用模糊查询获取结果 利用map类型进行参数传入不太规范,但是在表中字段众多且无需传入所有字段的情况下比较好用(狂神说的,我在实际项目中没有用到) 实践 跟上一篇一样,基础环境搭建代码我就不写了,仅写核心的java和xml文件