
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 · 194 阅读 · 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 · 212 阅读 · 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 · 326 阅读 · 0 评论 -
22.动态SQL
动态SQL环境搭建什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句动态 SQL元素和―STL或基于类似XML的文本处理器相似。在MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis采用功能强大的基于0GNL的表达式来淘汰其它大部分元素。ifchoose (when,otherwise)trim (where,set)foreach搭建环境[外链图片转存失败,源站可能有防盗链机制,建原创 2021-08-10 15:49:01 · 123 阅读 · 0 评论 -
21-一对多的处理
一对多的处理环境搭建和多对一的环境一样实体类有点变化package com.tian.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; private int tid;}//---------------------------------------------package com.tian.pojo;import lom原创 2021-08-10 15:48:28 · 137 阅读 · 0 评论 -
20-多对一的处理
复杂查询环境搭建1.导入lombok2.新建实体类 Teacher Student (package com.tian.dao;)@Datapublic class Teacher { private int id; private String name;}@Datapublic class Student { private int id; private String name; //学生需要关联一个老师 private Tea原创 2021-08-09 15:19:33 · 90 阅读 · 0 评论 -
19-二级缓存
二级缓存二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存基于namespace级别的缓存,一个名称空间,对应一个二级缓存;工作机制一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中;如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中;新的会话查询信息。就可以从二级缓存中获取内容;不同的mapper查出的数据会放在自己对应的缓存(map)中;步骤:1.开启全局缓存<settin原创 2021-08-09 15:18:52 · 133 阅读 · 0 评论 -
18-一级缓存
一级缓存一级缓存也叫本地缓存:SqlSession与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如果需要获取相同的数据,直接从缓存中拿,没必须再去查询数据库;测试:1.开启日志<settings> <setting name="logImpl" value="STDOUT_LOGGING"/></settings>2.测试在一个session中查询两次相同的日志3.查看日志输出代码演示核心配置文件<?xml ve原创 2021-08-09 15:18:21 · 112 阅读 · 0 评论 -
17-缓存简介
缓存查询: 连接数据库 耗资源!一次查询的结果,给他智存在一个可以直接取到的地方!-->内存 : 缓存我们再次查询相同数据的时候,直接走缓存,就不用走数据库了1.什么是缓存[ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2.为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3.什么样的数据能使用原创 2021-08-09 15:17:49 · 206 阅读 · 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 · 135 阅读 · 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 · 93 阅读 · 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 · 143 阅读 · 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 · 160 阅读 · 0 评论 -
10-使用limit分页
使用limit分页思考:为什么要分页?减少数据的处理量使用Limit分页语法 select *from user limit startIndex,pageSize; select * from user limit 3; #[0,n]使用Mybatis实现分页,核心SQL1.接口 //分页 List<User> getUserByLimit(Map<String,Integer> map);2.Mapper.xml<select i原创 2021-08-09 15:12:39 · 148 阅读 · 0 评论 -
09-日志工厂
日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手!曾经:sout、debug现在:日志工厂!LOG4JSTDOUT_LOGGINGSTDOUT_LOGGING讲解在Mybatis中具体使用那个一日志实现,在设置中设定!STDOUT_LOGGING标准日志输出在mybatis核心配置文件中,配置我们的日志!<settings> <!-- 标准的日志工厂实现 --> <setting name="logImpl"原创 2021-08-09 15:11:37 · 209 阅读 · 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 · 113 阅读 · 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 · 198 阅读 · 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 · 175 阅读 · 0 评论 -
05-配置之属性优化
配置之属性优化核心配置文件mybatis-config.xml环境配置< environments >MyBatis可以配置成适应多种环境不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。学会使用配置多套运行环境!Mybatis默认的事务管理器就是JDBC,连接池: POOLED3、属性(properties)我们可以通过properties属性来实现引用配置文件这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件原创 2021-08-08 14:27:52 · 145 阅读 · 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 · 147 阅读 · 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 · 134 阅读 · 0 评论 -
02-第一个Mybatis程序
第一个Mybatis程序搭建环境搭建数据库新建项目1.新建Maven项目 检查maven配置看是不是自己的maven2.删除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 · 131 阅读 · 2 评论 -
01-什么是mybatis
什么是MybatisMyBatis是一款优秀的持久层框架它支持定制化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 · 73 阅读 · 0 评论