mybatis
西飘客
这个作者很懒,什么都没留下…
展开
-
Mybatis学习20 缓存
1. Mybatis--缓存简介查询 : 连接数据库,耗资源一次查询的结果,给他暂存一个可以直接取到的地方(内存),这个内存就称之为缓存,我们再次查询的相同数据的时候,直接走缓存,不走数据库了1.1 什么是缓存1.存在内存中的临时数据2.将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题1.2 为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统...原创 2022-01-04 18:19:29 · 219 阅读 · 0 评论 -
Mybatis学习19 动态Sql之Sql片段,Foreach
1.1 Sql片段有的时候,我们可能会将一些功能的部分抽取出来,方便复用!1.1.1 使用SQL标签抽取公共部分 <sql id="publicSql"> <if test="title!=null"> title = #{title} </if> <if test="author!=null"> and author = #{author}原创 2021-12-20 18:00:53 · 363 阅读 · 0 评论 -
Mybatis学习18 动态sql之choose、when、otherwise语句
1. Mybatis–动态sql之choose、when、otherwise语句有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。1.1 Mapper接口BlogMapper.javaList<Blog> queryBlogChoose(Map map);1.2 Mapper.xml <select id="queryBlogChoose原创 2021-12-20 17:23:48 · 531 阅读 · 0 评论 -
Mybatis学习17 动态标签之Where,set,trim语句
<select id="queryBlogIf" parameterType="map" resultType="Blog"> select * from mybatis.blog where 1=1 <if test="title != null"> and title = #{title} </if> <if test="author != null"> ...原创 2021-12-20 17:06:30 · 706 阅读 · 0 评论 -
Mybatis学习16 动态SQL之IF语句
1. Mybatis–动态SQL之IF语句1.1 BlogMapper.java // 查询博客 List<Blog> queryBlogIf(Map map);1.2 BlogMapper.xml <select id="queryBlogIf" parameterType="map" resultType="Blog"> select * from mybatis.blog where 1=1 <if原创 2021-12-20 16:31:57 · 110 阅读 · 0 评论 -
Mybatis学习15 动态SQL搭建环境
1. Mybatis–动态SQL动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。原创 2021-12-20 16:01:13 · 1019 阅读 · 0 评论 -
Mybatis学习14 一对多处理
比如:一个老师拥有多个学生!对于老师而言,就是一对多的关系!1.1 环境搭建1.1.1 实体类Student .javapackage com.gyc.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; private int tid;}Teacher .javapackage com.gyc.pojo;impo原创 2021-12-20 14:33:34 · 75 阅读 · 0 评论 -
Mybatis学习13 多对一的处理
1.1 按照查询嵌套处理StudentMapper .javapackage com.tian.dao;import com.tian.pojo.Student;import java.util.List;public interface StudentMapper { //查询所有的学生信息,以及对应的老师信息 public List<Student> getStudent();}Studentmapper.xml <!--原创 2021-12-20 10:44:40 · 135 阅读 · 0 评论 -
Mybatis学习12 多对一处理之复杂查询环境搭建
1. 多对一处理多对一:多个学生,对应一个老师 对于学生而言,关联,多个学生,关联一个老师【多对一】 对于老师而言,集合,一个老师,有很多个学生【一对多】1.1 复杂查询环境搭建1.1.1 建表CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE = INNODB DEFAULT CHARSET=utf8.原创 2021-12-17 18:19:31 · 583 阅读 · 0 评论 -
Mybatis学习11 Lombok的使用
lombok是一款方便我们编写mybatis框架时使用的插件,它可以通过注解自动帮我们生成get/set/toString等等代码,方便与我们编写javaBean.使用步骤:1.在IDEA中安装Lombok插件2.在项目中导入lombok的jar包 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</arti原创 2021-12-17 17:35:53 · 115 阅读 · 0 评论 -
Mybatis学习10 使用注解开发
面向接口编程在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作原创 2021-12-17 16:15:40 · 68 阅读 · 0 评论 -
Mybatis学习9 分页查询
分页为什么要分页?减少数据的处理量使用limit分页select * from user limit startIndex,pageSize;select * from user limit 3; 使用Mybatis实现分页,核心sql1、接口//分页List<User> getUserByLimit(Map<String,Integer> map);2、Mapper.xml<!-- 分页 --><select id="原创 2021-12-17 14:57:10 · 87 阅读 · 0 评论 -
Mybatis学习8 日志
日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志是我们很好的助手!曾经:sout、debug现在:日志工厂SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 【掌握】NO_LOGGING在mybatis中具体使用哪一个日志,根据需要进行配置STDOUT_LOGGING标准日志的输出在mybatis核心配置文件中,配置我们的日志!<settings> <!--注意名原创 2021-12-17 11:44:20 · 124 阅读 · 0 评论 -
Mybatis学习7 结果集映射
结果集映射主要是为了解决属性名和类型名不一致的问题。新建一个项目,拷贝之前的,测试实体类字段不一致的情况,如:数据库中的字段是pwd,实体类的字段是password,在执行查询的时候就会返回password=null解决办法:起别名 <!--解决属性名和类型名不一致的问题 方法1:起别名--> <select id="getUserById" parameterType="int" resultType="user">--> se原创 2021-12-17 09:47:37 · 577 阅读 · 0 评论 -
Mybatis学习6 生命周期
所谓的生命周期就是第一个对象应该存活的时间,比如一些对象一次用完后就要关闭,使它们被Java虚拟机(JVM)销毁,以避免继续占用资源,所以我们会根据每一个组件的作用去确定其生命。(一)、SqlSessionFactoryBuilder SqlSessionFactoryBuilder的作用就是在于创建SqlSessionFactory,创建成功后,SqlSessionFactoryBuilder就失去了作用,所以它只能存在于创建SqlSessionFactory的方法中,而不要让其长期存在。转载 2021-12-16 18:00:25 · 89 阅读 · 0 评论 -
Mybatis学习5 配置解析
1.核心配置文件mybatis-config.xml mybatis的配置文件中包含了深深影响mybatis行为的设置和属性信息configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSour原创 2021-12-16 17:43:38 · 68 阅读 · 0 评论 -
Mybatis学习4 Map和模糊查询
假设,我们实体类,或者数据库中的表,字段,或者参数过多,我们应当考虑使用Map!接口设置://万能的mapint addUser2(Map<String, Object> map);UserMapper.xml文件的配置:<insert id="addUser2" parameterType="map"> insert into mybatis.user (id,username,pwd) values (#{userid},#{username},#原创 2021-12-16 14:28:13 · 65 阅读 · 0 评论 -
Mybatis学习3 增删改查的实现
增删改查简称:CRUD(创建:Create, 读取:Read,更新:Update,删除: Delete) 是对于存储的信息可以进行操作的同义词。是一个对四种操作持久化信息的基本操作的助记符。CRUD 通常是指适用于存于数据库或数据存储器上的信息的操作,不过也可以应用在高层级的应用操作,例如通过在设置状态字段并标记删除的而并非移除数据的伪删除。接口代码:package com.gyc.dao;import com.gyc.pojo.User;import java.util.List;.原创 2021-12-16 11:00:12 · 1279 阅读 · 0 评论 -
Mybatis学习2 第一个Mybatis程序
<dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> ...原创 2021-12-15 18:43:37 · 1333 阅读 · 0 评论 -
Mybatis学习1 mybatis介绍
mybatis – MyBatis 3 | 简介https://mybatis.org/mybatis-3/zh/index.html原创 2021-07-23 17:37:37 · 78 阅读 · 0 评论