
Mybatis
文章平均质量分 64
Mybatis
码上得天下
这个作者很懒,什么都没留下…
展开
-
Mybatis之Sqlsession、Connection和Transaction三者间的关系
最近在看mybatis的源码,搜到这篇文章Sqlsession、Connection和Transaction原理与三者间的关系,debug之后发现有不少疑惑,于是按照原文整理了一下,记录下debug中的一些困惑点。Mybatis。原创 2024-05-03 21:57:27 · 3495 阅读 · 3 评论 -
Mybatis多层嵌套查询方式
多层嵌套查询指的是在进行数据库查询时,需要查询多个关联表才能获取最终的结果。这种情况下,我们需要在 SQL 语句中使用多个子查询,把不同层级的查询进行组合,才能得到最终的结果。本文主要介绍了 Mybatis 多层嵌套查询的实现方式,包括使用嵌套 Select 语句和使用 Mybatis 的 Association 和 Collection 功能。同时,本文还提供了两个示例代码供读者参考。希望本文能够帮助读者更好地了解和使用 Mybatis。转载 2023-10-10 22:00:17 · 1971 阅读 · 0 评论 -
MyBatis-Plus多表关联查询
select() mp的select策略是覆盖,以最后一次为准,这里的策略是追加,可以一直select 主表字段可以用lambda,会自动添加表别名,主表别名默认是 t ,非主表字段必须带别名查询。leftJoin() 参数说明 第一个参数: 参与连表的实体类class 第二个参数: 连表的ON字段,这个属性必须是第一个参数实体类的属性 第三个参数: 参与连表的ON的另一个实体类属性。条件查询,可以查询主表以及参与连接的所有表的字段,全部调用mp原生的方法,正常使用没有sql注入。转载 2023-03-14 12:00:32 · 3175 阅读 · 1 评论 -
MyBatis-Plus
代码生成器转载 2021-08-24 19:17:01 · 75 阅读 · 0 评论 -
Mybatis(三):一对多级联查询
主要是使用<collection>来实现关联。package cn.saytime.domain;import java.util.List;/** * 用户 */public class User { private Long id; private String username; private Integer age; //private IdCard idCard; // 一对多 private List<O转载 2021-05-21 09:10:22 · 309 阅读 · 0 评论 -
Mybatis(二) Mybatis中#{}和${}的区别详解
场景:假设数据库有两个数据一模一样的表。历史表,当前表查询表中的信息,有时候从历史表中去查询数据,有时候需要去新的表去查询数据。希望使用1个方法来完成操作。即根据不同的表名查询数据。使用${}可以查询到数据使用#{}不可以查询到数据${}与#{}区别:${} 是字符串拼接,通过${}可以将传入的内容拼接在sql中且不进行jdbc类型转换。 #{} 是占位符,相当于PreparedStatement使用占位符去替换参数,自动进行java类型和jdbc类型转换,可以防止sq转载 2021-05-21 09:08:52 · 286 阅读 · 0 评论 -
Mybatis(一):插入操作返回主键
插入数据并返回主键这种需求很常见,所以列出来。一、实现方式1. 使用useGeneratedKeys+keyProperty (推荐)简单来说就是配置:<insert id="" useGeneratedKeys="true" keyProperty="id">将插入的ID赋值给设置的keyProperty对象属性字段里面,一般也就是对象的ID,比如插入User对象,设置赋值主键ID给id字段。2. 使用selectKeyMySQL 数据库可以使用如下方式。.转载 2021-05-21 09:07:55 · 11686 阅读 · 1 评论 -
MyBatis3动态sql
MyBatis 最强大的特性之一是它的动态语句功能。如果你以前使用 JDBC 或者类似的框架,你就会明白把 SQL 语句条件连接在一起是多么的痛苦,一点都不能疏忽空格和逗号等。动态语句完全能解决这些烦恼。if choose (when, otherwise) trim (where, set) foreach if动态 SQL 中最常做的事情就是用条件地包含一个 where 子句。比如:<select id=”findActiveBlogWithTitleLike” p...原创 2020-10-25 21:18:50 · 124 阅读 · 0 评论 -
Mybatis批量更新注解形式(Mysql和Oracle)
Oracle:@Mapperpublic interface ContactsMapper { /*** * @Description: 参考https://www.jb51.net/article/132823.htm (利用存储过程); * 利用存储过程主要是因为每条更新都是一个独立的sql,用“;”分开,而Oracle只支持"一条完整的sql";如“s...原创 2020-01-01 22:21:38 · 791 阅读 · 0 评论 -
Mybatis注解@Select结合@Results使用
该方式是否可以解决不同数据库字段别名的不同写法问题,如果是多表联查(多表有命名一样的字段),@Result可以准确定位sql中具体相关表的字段呢?回家测试一下!!!public interface TestMapper { @Select("SELECT " + "t1.APPLY_NO," + "t1.CARD_IS_LON...原创 2020-01-01 22:16:35 · 5094 阅读 · 0 评论 -
Oracle,PostgreSQL存在即更新,不存在则插入Sql
PostgreSQL: INSERT INTO ... ON conflict(,) DO UPDATE SET ...(conflict里面的字段必须建唯一索引或联合唯一索引)@Insert("<script>" + " INSERT INTO CSP_PHASE_CODE_HISTORY(ACCOUNT_ID,PHASE_CODE,END_TIME...原创 2020-01-01 22:12:36 · 686 阅读 · 0 评论 -
mybatis分页插件使用
/** * @description: 分页查询 * <!-- mybatis分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-sprin...原创 2020-01-01 22:10:56 · 95 阅读 · 0 评论 -
Mybatis @InsertProvider注解使用实例
@InsertProvider(type = FaceRecognizeResultMapperSql.class, method = "insertFaceRecognizeResult") public int insertFaceRecognizeResult(@Param("faceRecognizeDTO")FaceRecognizeDTO bean1, @Param("fac...原创 2020-01-01 22:09:54 · 1778 阅读 · 0 评论 -
Mybatis @SelectProvider注解使用实例
@Mapperpublic interface QueryCustomerInfoMapper { @SelectProvider(type = QueryCustomerInfoMapperSql.class, method = "queryAppointRegisterInfo") List<Map> queryAppointRegisterInfo(Map&...原创 2020-01-01 22:11:43 · 496 阅读 · 0 评论 -
Mybatis批量插入注解形式(Mysql和Oracle)
数据库:PostgreSQL,MYSQL@Mapperpublic interface CheckQualificationInfoMapper { // 方法一 @Insert({"<script>" + "insert into check_qualification_info " + "(id_mp_chec...原创 2019-10-25 22:48:44 · 1028 阅读 · 0 评论 -
mybatis动态 SQL和SQL语句构建器类
https://mybatis.org/mybatis-3/zh/dynamic-sql.html转载 2021-05-18 09:04:19 · 269 阅读 · 0 评论