mybatis
xixihaha_coder
坚持就是胜利!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
25-动态SQL之Foreach
动态SQL之Foreach 接口 //查询第1-2-3号记录的博客 List<Blog> queryBlogForeach(Map map); 对应的xml <!--select * from mybatis.blog where 1=1 and (id=1 or id=2 or id=3)--> <select id="queryBlogForeach" parameterType="map" resultType="blog"> select * f原创 2021-08-10 15:50:37 · 266 阅读 · 0 评论 -
24-动态SQL常用标签
动态SQL常用标签 choose (when,otherwise) 接口 List<Blog> queryBlogChoose(Map map); 对应的xml <select id="queryBlogChoose" parameterType="map" resultType="blog"> select * from mybatis.blog <where> <choose>原创 2021-08-10 15:50:04 · 256 阅读 · 0 评论 -
23-动态SQL之IF语句
动态SQL之IF语句 接口 //查询博客 List<Blog> queryBlogIF(Map map); 对应的xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <ma原创 2021-08-10 15:49:33 · 378 阅读 · 0 评论 -
22.动态SQL
动态SQL环境搭建 什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句 动态 SQL元素和―STL或基于类似XML的文本处理器相似。在MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis采用功能强大的基于0GNL的表达式来淘汰其它大部分元素。 if choose (when,otherwise) trim (where,set) foreach 搭建环境 [外链图片转存失败,源站可能有防盗链机制,建原创 2021-08-10 15:49:01 · 159 阅读 · 0 评论 -
21-一对多的处理
一对多的处理 环境搭建 和多对一的环境一样 实体类有点变化 package com.tian.pojo; import lombok.Data; @Data public class Student { private int id; private String name; private int tid; } //--------------------------------------------- package com.tian.pojo; import lom原创 2021-08-10 15:48:28 · 166 阅读 · 0 评论 -
20-多对一的处理
复杂查询环境搭建 1.导入lombok 2.新建实体类 Teacher Student (package com.tian.dao;) @Data public class Teacher { private int id; private String name; } @Data public class Student { private int id; private String name; //学生需要关联一个老师 private Tea原创 2021-08-09 15:19:33 · 119 阅读 · 0 评论 -
19-二级缓存
二级缓存 二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存 基于namespace级别的缓存,一个名称空间,对应一个二级缓存; 工作机制 一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中; 如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中; 新的会话查询信息。就可以从二级缓存中获取内容; 不同的mapper查出的数据会放在自己对应的缓存(map)中; 步骤: 1.开启全局缓存 <settin原创 2021-08-09 15:18:52 · 181 阅读 · 0 评论 -
18-一级缓存
一级缓存 一级缓存也叫本地缓存:SqlSession 与数据库同一次会话期间查询到的数据会放在本地缓存中。 以后如果需要获取相同的数据,直接从缓存中拿,没必须再去查询数据库; 测试: 1.开启日志 <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> 2.测试在一个session中查询两次相同的日志 3.查看日志输出 代码演示 核心配置文件 <?xml ve原创 2021-08-09 15:18:21 · 138 阅读 · 0 评论 -
17-缓存简介
缓存 查询: 连接数据库 耗资源! 一次查询的结果,给他智存在一个可以直接取到的地方!-->内存 : 缓存 我们再次查询相同数据的时候,直接走缓存,就不用走数据库了 1.什么是缓存[ Cache ]? 存在内存中的临时数据。 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。 2.为什么使用缓存? 减少和数据库的交互次数,减少系统开销,提高系统效率。 3.什么样的数据能使用原创 2021-08-09 15:17:49 · 253 阅读 · 0 评论 -
14-Lombok的使用
lombok的使用 使用步骤 1.在IDEA中安装Lombok插件 2.在项目中导入Lombok的jar包 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency> @Data原创 2021-08-09 15:17:20 · 164 阅读 · 0 评论 -
13-注解增删改查
注解增删改查 自动提交事务 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(true);//自动提交事务 } 编写接口,增加注解 package com.tian.dao; import com.tian.pojo.User; import org.apache.ibatis.annotations.*; import java.util.List; import java.util.原创 2021-08-09 15:16:47 · 126 阅读 · 0 评论 -
12-使用注解开发
使用注解开发 1.注解在接口上实现 public interface UserMapper { @Select("select * from user") List<User> getUsers(); } 2.需要在核心配置文件中绑定接口! <!-- 绑定接口 --> <mappers> <mapper class="com.tian.dao.UserMapper"/> </mappers> 3.测试 @T原创 2021-08-09 15:16:13 · 177 阅读 · 0 评论 -
11-rowBounds分页
rowBounds分页 了解即可 使用Rowbounds分页 1.接口 //分页 List<User> getUserByRowBounds(); 2.Mapper.xml <select id="getUserByRowBounds" resultType="User"> select * from mybatis.user </select> 3.测试 @Test public void getUserByRowBounds(){原创 2021-08-09 15:13:19 · 201 阅读 · 0 评论 -
10-使用limit分页
使用limit分页 思考:为什么要分页? 减少数据的处理量 使用Limit分页 语法 select *from user limit startIndex,pageSize; select * from user limit 3; #[0,n] 使用Mybatis实现分页,核心SQL 1.接口 //分页 List<User> getUserByLimit(Map<String,Integer> map); 2.Mapper.xml <select i原创 2021-08-09 15:12:39 · 185 阅读 · 0 评论 -
09-日志工厂
日志工厂 如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手! 曾经:sout、debug 现在:日志工厂! LOG4J STDOUT_LOGGING STDOUT_LOGGING讲解 在Mybatis中具体使用那个一日志实现,在设置中设定! STDOUT_LOGGING标准日志输出 在mybatis核心配置文件中,配置我们的日志! <settings> <!-- 标准的日志工厂实现 --> <setting name="logImpl"原创 2021-08-09 15:11:37 · 254 阅读 · 0 评论 -
08-ResultMap结果集映射
ResultMap结果集映射 数据库中的字段 id name pwd 新建一个项目,拷贝之前的, 测试实体类字段不一致的情况 public class User { private int id; private String name; private String password; } <select id="getUserById" parameterType="int" resultType="User"> select * from原创 2021-08-08 14:31:14 · 144 阅读 · 0 评论 -
07-配置之映射器说明
配置之映射器说明 映射器(Mappers) MapperRegistry:注册绑定我们的Mapper文件 方式一:[推荐使用] <!--每一个Mapper.xml都需要在mybatis核心配置文件中注册!--> <mappers> <mapper resource="com/tian/dao/UserMapper.xml"/> </mappers> 方式二:使用class文件绑定注册 <!--每一个Mapper.xml都需要在mybatis核心原创 2021-08-08 14:30:39 · 244 阅读 · 0 评论 -
06-配置之别名优化
配置之别名优化 类型别名是为Java类型设置一个短的名字。 存在的意义仅在于用来减少类完全限定名的冗余。 <!--可以给实体类取别名 第一种--> <typeAliases> <typeAlias type="com.tian.pojo.User" alias="User"/> </typeAliases> <select id="getUserList" resultType="User" > sele原创 2021-08-08 14:28:33 · 216 阅读 · 0 评论 -
05-配置之属性优化
配置之属性优化 核心配置文件 mybatis-config.xml 环境配置< environments > MyBatis可以配置成适应多种环境 不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。 学会使用配置多套运行环境! Mybatis默认的事务管理器就是JDBC,连接池: POOLED 3、属性(properties) 我们可以通过properties属性来实现引用配置文件 这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件原创 2021-08-08 14:27:52 · 205 阅读 · 0 评论 -
04-Map和模糊查询扩展
Map和模糊查询扩展 万能Map 应用场景,比如insert sql表有很多字段,你不可能一个一个写吧… 如果我们的实体类,或者数据库的表,字段或者参数过多,我们应该考虑使用Map! 代码演示 userMapper //万能Map int addUser2(Map<String,Object> map); User getUserById2(Map<String,Object> map); userMapper.xml <insert id="原创 2021-08-08 14:27:01 · 189 阅读 · 0 评论 -
03-增删改查实现
增删改查实现 select 查询语句 id 对应namespace中的方法名 resultType sql语句执行的返回值 paramterType 参数类型 步骤 1.编写接口 代码演示 package com.tian.dao; import com.tian.pojo.User; import java.util.List; public interface UserMapper { //查询全部用户 List<User> getUserList(); /原创 2021-08-07 13:39:42 · 173 阅读 · 0 评论 -
02-第一个Mybatis程序
第一个Mybatis程序 搭建环境 搭建数据库 新建项目 1.新建Maven项目 检查maven配置看是不是自己的maven 2.删除src目录,当作父工程 3.导入maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-08-06 11:24:58 · 161 阅读 · 2 评论 -
01-什么是mybatis
什么是Mybatis MyBatis是一款优秀的持久层框架 它支持定制化SQL、存储过程以及高级映射。 .MyBatis 避兔了几乎所有的JDBC代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old JavaObjects,普通老式Java对象)为数据库中的记录。 MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google原创 2021-08-06 11:15:27 · 99 阅读 · 0 评论
分享