![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mybatis / jpa
文章平均质量分 79
ORM 框架
桐花思雨
这个作者很懒,什么都没留下…
展开
-
MyBatis传递多个参数
MyBatis。原创 2022-10-17 17:19:31 · 2399 阅读 · 0 评论 -
MyBatis插入数据后返回主键id
很多时候,在向数据库插入数据时,需要保留插入数据的 ,以便进行后续的 操作或者将 存入其他表作为外键。但在默认情况下, 操作返回的是一个 值,并不是表示主键 ,而是表示当前 语句影响的行数接下来,我们看看 如何在使用 和 做 插入操作时将返回的 绑定到对象中......原创 2022-06-13 15:20:08 · 16630 阅读 · 4 评论 -
MyBatis中数据库字段名与实体类属性名不一致
在使用 来持久化数据库时,有时候会碰到数据库中表中的字段与 实体类中属性名不一致的情况,在这种情况下 是不能完成字段的自动映射的。而通常情况下,数据库及实体类是不应该被改的的。所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式1.1. 起别名1.2. 可以指定映射关系使用 时,在 语句配置中,要有 替换原来的 中的 要与查询到的字段名一致, 要与实体类的属性一致1.3. 驼峰命名这种情况下, 提供了一个全局属性 来解决两者名字不一致的问题..原创 2022-06-13 14:19:30 · 3420 阅读 · 0 评论 -
MyBatis的xml文件的大于,小于,不等于的写法
MyBatis原创 2022-06-13 14:16:35 · 3006 阅读 · 0 评论 -
MyBatis模糊查询的几种写法
1.2. 使用 函数针对 数据库的语句,采用 函数,它可以将多个字符串连接成一个字符1.3. 使用 标签如果报错如下,说明 版本过低,需要升级版本原创 2022-06-13 14:11:41 · 448 阅读 · 0 评论 -
MyBatis中Mapper接口是怎么和XML文件关联起来的
目录1.前言2. `XML` 文件和 `Mapper` 接口的解析2.1. `XML` 文件的解析1.前言使用过 MyBatis 的,都知道它有 Mapper 接口和 Mapper.xml 文件,那么它们是如何关联起来的呢?,又是如何一起运作的呢?接下来,我们从源码级别来分析回答这个问题2. XML 文件和 Mapper 接口的解析2.1. XML 文件的解析XMl 文件的解析过程太过复杂,在这里不再过多赘述,详细过程 在这里,我们先从 这里的 2.6 节点谈起,代码如下private void原创 2022-03-07 22:14:05 · 13536 阅读 · 4 评论 -
MyBatis内的Mapper接口方法为什么不能重载
目录前言前言今天在翻阅有关 MyBatis 专题的知识点时,看到了这样一道面试题:MyBatis 内的 Mapper接口方法为什么不能重载,对于这个问题,幸好前几天查漏补缺了一下 MyBatis 专题,毋庸置疑它考的是你对 MyBatis 源码的熟悉程度,少说多做...原创 2022-03-06 19:26:03 · 1939 阅读 · 0 评论 -
Spring整合MyBatis原理之Mapper接口和xml文件的解析
目录前言类 `SqlSessionFactoryBean`实现了 `FactoryBean` 接口的 `getObject()``buildSqlSessionFactory()`解析 `mapper` 文件的 `parse()`解析 `mapper` 文件的 `configurationElement(parser.evalNode("/mapper"))`解析节点 `statementParser.parseStatementNode()`绑定 `namespace` 的 `mapper` 的 `bin原创 2022-03-06 01:24:01 · 6334 阅读 · 0 评论 -
Spring整合MyBatis原理之Mapper接口代理对象的产生以及调用
目录前言解析 `Dao` 接口小结`Dao` 接口的调用`method.invoke(this, args)`增删改查`spring` 整合 `mybatis` 原理流程步骤前言解析 Dao 接口DAO 文件,也就是 basePackage 指定的包下的文件,也就是上文的 ProductInfoMapper上文 doScan() 中说过,basePackage 包下所有 bean 定义的 beanClass 会被设置成 MapperFactoryBean.class,而 MapperFactoryB原创 2022-03-06 01:19:35 · 2850 阅读 · 2 评论 -
Spring整合MyBatis原理之MapperScannerConfigurer(一)
目录前言`spring` 整合 `mybatis` 原理1. 类 `MapperScannerConfigurer`类 `MapperScannerConfigurer` 小结2. 类 `SqlSessionFactoryBean`类 `SqlSessionFactoryBean` 小结3. 解析 `DAO` 文件解析 `DAO` 文件小结4. `DAO` 接口被调用`spring` 整合 `mybatis` 原理流程步骤前言spring 和 mybatis 进行整合时,需要使用以下这个依赖包<原创 2021-04-19 14:30:49 · 2642 阅读 · 0 评论 -
Spring整合MyBatis之MapperFactoryBean
目录前言`MapperFactoryBean` 概述`MapperFactoryBean` 源码实现 `FactoryBean` 接口的作用前言在 Spring 整合 MyBatis 的过程中,我们经常会配置注入 MapperFactoryBean 这个类<bean id="mapperFactoryBean" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface"原创 2022-03-05 22:28:40 · 3687 阅读 · 0 评论 -
Spring整合MyBatis之SqlSession对象的产生
目录前言前言在 上一篇 文章中,我们知道 MyBatis 有四大核心对象,分别是 SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession,Mapper 映射器,而 MyBatis 在和 Spring 整合之后,Spring 会帮助我们管理 SqlSessionFactory、SqlSession、Mapper 映射器这些核心 bean;在 这一篇 文章中已经阐述了 SqlSessionFactory 对象的产生过程,在本篇文章中就是来阐述 SqlS原创 2022-03-05 18:21:06 · 2620 阅读 · 0 评论 -
Spring整合MyBatis之SqlSessionFactory对象的产生
目录为什么 `MyBatis` 要和 `Spring` 整合`Spring` 整合 `MyBatis``Maven` 依赖创建 `Spring` 配置文件为什么 MyBatis 要和 Spring 整合Spring 会帮助我们管理 bean:省去我们对 SqlSessionFactory、SqlSession、Mapper 这些核心对象(bean)的创建,不需要我们手工去创建了,Spring 会通过 IOC 容器来帮我们管理这些对象Spring 使用 xxxTemplate 封装了方法:Spring原创 2022-03-04 22:38:19 · 2240 阅读 · 0 评论 -
MyBatis入门使用及其四大核心对象
目录`MyBatis` 简介`MyBaits` 的优点`MyBatis` 与 `Hibernate` 有哪些不同MyBatis 简介MyBatis 是一个半 ORM( 对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。开发人员直接编写原生态 SQL,可以严格控制 SQL 执行性能, 灵活度高MyBatis 可以使用 XML 或注解来配置和映射原生信息, 将 POJO 映射成数据库中的记录,原创 2022-03-04 16:44:57 · 1550 阅读 · 0 评论 -
Spring Data JPA持久层中的一对一和一对多
目录`JPA` 中的一对一JPA 中的一对一比如说一个学校有一个地址,一个地址对应的只有一个学校,Address 类@Data@Entity@Table(name = "t_address")public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer aid; private String province;原创 2022-02-19 23:05:36 · 440 阅读 · 0 评论 -
使用Spring Data JPA作为持久层框架
Spring Data JPA简述Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 规范的基础上开发的一个框架,使用Spring Data JPA 可以极大地简化JPA的写法,可以在几乎不用写实现的情况下实现对数据库的访问和操作,除了CRUD外,还包括分页和排序等一些常用的功能Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <a原创 2020-08-23 19:26:06 · 736 阅读 · 0 评论 -
MyBatis的分页插件PageHelper的使用
目录`pagehelper` 分页插件简介pagehelper 分页插件简介如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页gitHub 官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md...原创 2022-01-07 15:38:30 · 447 阅读 · 0 评论 -
MyBatis的缓存机制
目录`mybatis` 的缓存机制一级缓存mybatis 的缓存机制一级缓存:SqlSession 级别的缓存,缓存的数据只在 SqlSession 内有效二级缓存:mapper 级别的缓存,同一个 namespace 公用这一个缓存,所以对 SqlSession 是共享的一级缓存一级缓存是 SqlSession 级别的缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空一级缓存是 SqlSessio原创 2021-12-19 18:18:06 · 741 阅读 · 0 评论 -
MyBatis中foreach的用法
目录`foreach` 说明foreach 说明你可以传递一个 list 实例或者 array 数组作为参数对象传给 mybatis。当你这么做的时候,mybatis 会自动将它包装在一个 Map 中,用名称作为键。list 实例将会以 list 作为键,而 array 数组实例将会以 array 作为键foreach 元素的属性主要有 item,index,collection,open,separator,closeitem:表示集合中每一个元素进行迭代时的别名index:指定一个名字,用于原创 2021-11-20 18:04:41 · 24759 阅读 · 3 评论 -
MyBatis中的动态SQL
目录`mybatis` 中的动态 `sql``if` 元素`choose` 元素mybatis 中的动态 sqlmybatis 中的动态 sql 主要包含如下几种元素:if、choose、when、otherwise、trim、where、set 以及 foreach 几种,我们下面分别来看看这几种if 元素if 是 mybatis 动态 sql 中的判断元素,这个有点类似于 Java 中的 if 语句,不同的是这里的 if 一般常常和 test 配合使用<select id="getUse原创 2021-08-31 21:49:58 · 1096 阅读 · 1 评论 -
MyBatis中一对多和多对一处理
目录`mybatis` 一对多和多对一处理数据准备实体类`mybatis` 多对一处理`service` 层接口`mapper.xml` 文件测试测试结果mybatis 一对多和多对一处理这里我们以老师和学生为例,一个老师对应多个学生,这是一对多;反过来,多个学生对应一个老师,这是多对一数据准备CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KE原创 2021-08-29 19:07:48 · 434 阅读 · 1 评论 -
MyBatis中的#{}与${}的区别
目录`MyBatis` 模糊查询的几种写法在程序中拼接参数使用 `concat()` 函数使用 `bind` 标签`mybatis.xml` 文件的大于,小于,不等于的写法`MyBatis` 中数据库字段名与实体类属性名不一致起别名`resultMap` 可以指定映射关系驼峰命名获取自动生成的主键值`#{}` 与 `${}` 的区别例一例二使用 `#{}`使用 `${}`MyBatis 模糊查询的几种写法在程序中拼接参数/* 构造查询参数 */Map<String, Object> p原创 2021-08-17 19:36:19 · 90 阅读 · 0 评论