MyBatis
MyBatis-第一章 ORM(Object Relational Mapping) 设计模式,思想对象关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。Object Relation Mapping对象 关系 映射 Object: java的对...
2024-01-10MyBatis原理介绍
ORM(Object/Relational Mapping),即对象关系映射,它完成面向对象的编程语言到关系数据库的映射。ORM工具的唯一作用是:把持久化对象的保存、修改、删除等操作,转换成对数据库的操作。ORM 基本映射关系:数据表映射类。数据表的行映射对象(实例)。数据表的列(字段)映射对象的属性。MyBatis...
2024-01-10深入了解MyBatis参数
深入了解MyBatis参数相信很多人可能都遇到过下面这些异常:"Parameter 'xxx' not found. Available parameters are [...]""Could not get property 'xxx' from xxxClass. Cause:"The expression 'xxx' evaluated to a null value.""Error evaluating expression 'xxx'. Return value (xxxxx) was not i...
2024-01-10Mybatis入参方式
Mybatis 入参方式单个基本类型或String参数在mapper文件中随便写<select id="" resultMap="resultMap">select * from USER_INFO t where t.name = #{sdfa,jdbcType=VARCHAR}</select>List<Student> get(String name);单个Map或者自定义类型的如是Map ,那么参数各是Map的key如果是自定义类型的,参数是属性名,更确切的说是get方法,例如:getNa...
2024-01-10Mybatis之插件分析
前言Mybatis提供了强大的扩展功能,也就是Mybatis的插件(plugins)功能;MyBatis允许你在已映射语句执行过程中的某一点进行拦截调用,拦截之后可以对已有方法添加一些定制化的功能,比如常见的分页功能;试图修改或重写已有方法的行为的时候,你很可能在破坏MyBatis 的核心模块,这些都是更低层的...
2024-01-10MyBatis生成UUID的实现
1.<selectKey>标签属性说明keyProperty:设置需要自动生成键值的列order:可选值BEFORE和AFTER,设置为BEFORE会先执行selectKey语句,设置keyProperty属性,再执行insert语句;设置为AFTER会先执行insert语句再执行selectKey语句resultType:结果类型,MyBatis 通常可以自己检测到,但这并不影响给它一个确切的类型。MyBatis ...
2024-01-10MyBatis配置与重要组件梳理
一、为什么要MyBatis配置文件其实MyBatis配置文件我们已经很少使用到,因为我们一般不会只是使用MyBatis,而是和Spring一起使用。在Spring中我们一般会配置一个SqlSessionFactoryBean来创建SqlSessionFactory,而一般不会通过解析配置文件来创建SqlSessionFactory。但是配置文件很重要,因为它可以帮助我们了解MyBatis...
2024-01-10MyBatis一对一映射初识教程
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。一对一映射在生活...
2024-01-10初识MyBatis及基本配置和执行
1.MyBatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。2. MyBatis...
2024-01-10MyBatis-Ext快速入门实战
最近在工作中,接触到了一个MyBatis扩展工具包MyBatis-Ext,可以说很大程度上减轻了使用mybatis时的工作量,本文就和大家来分享一下这个轻量的扩展工具。MyBatis-Ext是MyBatis的增强扩展,和我们平常用的Mybatis-plus非常类似,简化了MyBatis对单表增删改查的操作,提供通用的增删改查,支持函数式编程,支...
2024-01-10MyBatis参数处理实现方法汇总
1、单个参数 mybatis不会做特殊处理。 #{参数名/任意名}:取出参数值。2、多个参数 mybatis会做特殊处理。 多个参数会被封装成 一个map。 key:param1...paramN,或者参数的索引也可以。 value:传入的参数值。 #{}就是从map中获取指定的key的值; 多个参数传递的时候要使用命名参数的...
2024-01-10Mybatis的入门示例代码
首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示。新建完表之后我们还需要建立相对应的实体类User.java并添加set和get方法:public class User {private String username;private String password;private int age;public String getUsername() {return username...
2024-01-10MyBatis版本升级引发的线上告警
背景某天晚上,美团到店事业群某项系统服务正在进行常规需求的上线。因为在内部的Plus系统发布时,提示inf-bom版本需要升级,于是我们就将inf-bom版本从1.3.9.6 升级至1.4.2.1,如下图1所示:不过,当服务上线后,开始陆续出现了一些更新系统交互日志方面的报警,这属于系统的辅助流程,报警...
2024-01-10MyBatis常见报错问题及解决方案
这是一个出错的代码public interface OrderInfoManageMapper { List<GetOrderInfoManageListReq> selectAllOrder(); void modifyDelivery(int id); void removeOrder(int id); List<GetOrderInfoManageListReq> selectOrderById(@Param("id") Integer id);}一、报错:1 There is no gett...
2024-01-10MyBatis多表连接查询的实例教程
多表连接的两种方式(数据库逻辑模型):1.一对一关系2.一对多关系一、通过 resultMap 和 association 实现一对一关系在 mapper.xml 文件里面的代码: <resultMap type="com.pojo.TRecruitment" id="tRecruitmentCollegeResultMap"> <id property="id" column="id" /> <result property="title" column="title" /> <result proper...
2024-01-10MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了。后来上百度上查了一下,算是解决了。记录一下MyBatis实现模糊查询的几种方式。 数据库表名为test_student,初始化了几条记录,如图: 起初我在MyBatis的mapper文件中是这样写的: <select id="searchStudents" resultType="com.example.entity.StudentEntity" parameterType="...
2024-01-10MyBatis中的表关联查询实现示例
Mybatis中的一对多对象关联查询查询模拟情景,商品与商品详情:一件商品可以对应多个商品详情信息,即从商品➡商品详情方向看,属于一对多。 在一对多关系中,需要在属于一的一方的实体类中添加多的一方的集合,一般为List<>类型 //(省去了get和set的方法) public class Goods { private Integer goodsId ; ...
2024-01-10MyBatis配置文件的写法和简单使用
初识 MyBatis 一最初 Apache 有一个batis的开源项目,放在Google code 中,后来因为一些原因迁移到了github,就是今天的myBatis什么是 MyBatis ?MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解...
2024-01-10第一个MyBatis程序(博客初写者)
第一个Mybatis程序 一、环境: 1、JDK1.8 2、MYSQL5.7 3、IDEA 4、MAVEN 3.63 二、Mybatis认识: 1、查看官方文档https://mybatis.org/mybatis-3/zh/index.html 2、查看百度百科https://baike.so.com/doc/5582692-5795562.html MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级...
2024-01-10Java MyBatis 多表查询详解
目录多表查询:一对一:一对多:多对多: 总结多表查询:学生表、班级表、课程表、班级课程表 一对一: 一个学生只属于一个班级。 查询:id name age gender banjiNameSELECT s.id,s.`name`,s.age,s.gender,b.id AS banjiId,b.name AS banjiNameFROM student AS s INNER JOIN banji AS bON s.banji_id=b.id; MyBatis中...
2024-01-10MyBatis快速入门(简明浅析易懂)
一、MyBatis简介MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.JDBC -> dbut...
2024-01-10Mybatis中接口传入多个参数
1、使用@Param注解List<QjcsEntity> getJgQjcs(@Param(value = "jgbm") String jgbm, @Param(value = "csbm") String csbm);在对应的mapper文件中直接取对应名字参数值<select id="getJgQjcs" resultType="com.winning.jcfw.core.entity.QjcsEntity"> SELECT a.JGBM,coalesce(b.CSBM,c.CSBM) AS CSB...
2024-01-10MyBatis如何实现流式查询的示例代码
基本概念流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好...
2024-01-10MyBatis缓存实现原理及代码实例解析
一、一级缓存(本地缓存) sqlSession级别的缓存。一级缓存是一直开启的;SqlSession级别的一个Map与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库; 一级缓存失效情况(没有使用到当前一级缓存的情况,效果就...
2024-01-10Java持久层框架MyBatis简单实例
什么是MybatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。MyBatis 本是apache的一个开源项目iBatis, 2...
2024-01-10