首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyBatis常见,常用知识点

它与全自动的区别在哪里 Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象可以根据对象关系模型直接获取,所以它是全自动的。...具体怎么操作的 有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的可以完成; 嵌套查询是先查一个表...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的结果的外id,再去另外一个表里面查询数据,也是通过配置...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外id,再去另外一个表里面查询数据,...Mapper接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

24道Mybatis常见面试题总结及答案!

使用#{}可以有效的防止SQL注入,提高系统安全性。 7、实体中的属性名和表中的字段名不一样 ,怎么办 ?...第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体的属性名一致。 ? 第2种: 通过 来映射字段名和实体类属性名的一一对应的关系。 ?...Mapper接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外id...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外id,去再另外一个表里面查询数据,

1.3K70

宜信的105条数据库军规

1.2 索引 【规则8】 规则说明:外没有索引的表。 规则描述:外没有索引会导致主子表关联查询,关联效率很低。 【规则9】 规则说明:组合索引数量过多或没有索引。...规则说明:使用的表。 规则描述:不建议使用约束,数据一致性通过应用端解决。 1.4 字段 【规则22】 规则说明:表字段过多。 规则阈值:100(字段数量超过指定阀值)。...规则描述:记录定义长度与实际存储长度差异过大,请考虑字段类型定义是否合理,个别字段过长是否可分表存储。 【规则25】 规则说明:不包含时间戳字段的表。 规则描述:时间戳,是获取增量数据的一种方法。...【规则89】 规则说明:重复查询子句。 规则描述:禁止使用重复的查询子句,应使用with as替换子句(仅限Oracle)来提升SQL执行效率。 【规则90】 规则说明:查询字段引用函数。...规则描述:禁止在查询字段中引用函数(类型转换函数、函数索引情况可忽略)。 【规则91】 规则说明:嵌套select子句。 规则描述:禁止出现select子句的嵌套查询,避免出现性能问题。

2.4K522

MyBatis 源码学习笔记(二)- MyBatis 进阶(Part B)

selectByPrimaryKey方法 除了id和result子标签外,resultMap还有以下这些子标签: constructor:用于实例化,注入结果到构造方法中,不包含无参构造方法使用...,一个的全路径名或者的别名,按照类属性名和数据库字段名称是否相同进行映射,相同就将字段值赋值给属性,还可以设置开启驼峰命名 resultMap,将结果集映射到一个Map上,就是定义转换规则。...:" + userList); } 执行该测试方法 Java Bean 传参 查询条件比较多时,建议将所有查询条件封装到Java Bean中,直接将Java Bean作为入参传到方法中。...keyProperty 标记一个属性,与主键字段对应的实体类属性,MyBatis会将生成的主键的值赋值给该属性,有多个主键属性使用逗号隔开 keyColumn 标记一个主键字段,与keyProperty...设置的主键属性一一对应,有多个可以使用逗号隔开 parameterType 传入参数的类型;可以给出全名,也可以给出类别名,使用别名必须是MyBatis内部定义或自定义的;基本数据类型:int、String

85710

MyBatis从入门到多表关联

其中,alias为自定义别名。如果圣罗alias属性,Mybatis会默认将名首字母小写后的名称作为别名。 自定义单个别名: <!...重点: 可以将任何迭代对象(集合、列表)和任何字段或对象数组传递给作为集合参数。 使用可迭代对象:index是当前迭代的次数,item值是本次迭代获取的元素。...使用字段(或Map.Entry对象的集合时):index是,item是值。...一对多:在“多”的一方,添加“一”的一方的主键作为。 多对多:产生中间关系表,引入两张表的主键作为,两个主键成为联合主键或使用新的字段作为主键。...select:指定引入嵌套查询的子SQL语句,该属性用于关联映射汇总的嵌套查询。 fetchType:指定在关联查询是否启用延迟加载。(fetchType有lazy和eager两个属性值。

26920

matinal:高质量内存数据库技术选型推荐(二)

查询MOT,只从内存中读取数据行,不会产生Disk IO消耗;在更新MOT,数据的更新直接写入到内存中。...Ignite通过可插拔的哈选算法来决定数据的位置,每个客户端都可以通过插入一个自定义的哈希函数来决定一个属于那个节点,并不需要任何特殊的映射服务或者命名节点。   ...内存优化:Ignite在内存中支持2种模式的数据缓存,堆内和堆外。缓存数据占用很大的堆,超过了Java主堆空间,堆外存储可以克服JVM垃圾回收(gc)导致的长时间暂停,但数据仍然在内存内。   ...SQL查询Ignite支持使用标准的SQL语法(ANSI 99)来查询缓存,可以使用任何的SQL函数,包括聚合和分组。   分布式关联:Ignite支持分布式的SQL关联和跨缓存的关联。   ...fastdb是一个面向应用的数据库,数据库表通过应用程序的信息来构造。

20110

Android Room 持久化库

[^]SQLite将@Insert(onConflict = REPLACE)作为一组REMOVE和REPLACE操作处理,而不是单个UPDATE操作。这种替换冲突值的方法可能会影响外约束。...[^] 创建嵌套对象 Room 支持在数据实体中嵌套其他对象来组合相关字段。例如 User 中嵌套一个 Address 这个地址对象中有三个字段:街道,城市,邮编。...[^] 嵌套字段可以嵌套其他字段[^] 如果数据实体中有多个 嵌套字段可以通过设置属性 prefix 加前缀的方式保证字段名不重复。...DAO 是 Room 的重要组件,他包含了操作数据的抽象方法; DAO可以是一个接口或者抽象,如果是抽象的话,它可以有一个构造函数,它将RoomDatabase作为其唯一参数。...要实现这一点,可以查询方法使用 LiveData 行的返回值。数据更新 Room 会自动生成所需的代码已更新LiveData。

3.9K70

Mybatis面试题(总结最全面的面试题!!!)

实体中的属性名和表中的字段名不一样,怎么办? 模糊查询like语句该怎么写? Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Mybatis是如何进行分页的?...使用#{}可以有效的防止SQL注入,提高系统安全性。 实体中的属性名和表中的字段名不一样,怎么办? 第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体的属性名一致。...Mapper接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外id...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外id,去再另外一个表里面查询数据,

3.5K20

具备MySQL特性和Redis性能的,Ignite纯内存数据库!

这样一来本身存在MySQL数据库里的数据,就可以原封不动的封到内存中使用。既保留了原有的业务逻辑,又使用上了内存读取高性能。 所以,它来了。...Apache Ignite是一个兼容ANSI-99、水平可扩展以及容错的分布式SQL数据库,作为一个SQL数据库,Ignite支持所有的DML指令,包括SELECT、UPDATE、INSERT和DELETE...官网站点:https://ignite.apache.org/ - 官网 docs 可以阅读安装和使用 中文文档:https://ignite-service.cn/doc/2.7.0/sql/ - 这是一个...如果说你做过小傅哥的 DB-Router 组件开发,那么也可以在组件中添加对Ignite内存数据库的路由配置。这样的使用会更加方便,也可以自动的通过注解来切换数据源的使用。...但我们这里需要把Ignite也配置出数据源并让它可以结合MyBatis进行使用。所以需要做一点编码的扩展使用。具体可以参考源码 与此同时还需要考虑对 Dao、Mapper 分不同的路径进行加载使用

1K31

Mybatis面试详解

7、实体中的属性名和表中的字段名不一样 ,怎么办 ? 8、 模糊查询 like 语句该怎么写?...号,调用PreparedStatement 的 set 方法来赋值;Mybatis 在处理{},就是把 7、实体中的属性名和表中的字段名不一样 ,怎么办 ?...Mapper 接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为 key 值,可唯一定位一个 MapperStatement。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap 里面配置 association 节点配置一对一的可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的...联合查询是几个表联合查询,只查询一次,通过在resultMap 里面的 collection 节点配置一对多的可以完成; 嵌套查询是先查一个表,根据这个表里面的 结果的外 id,去再另外一个表里面查询数据

7910

Mybatis常见面试题总结

调用接口方法,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。...第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体的属性名一致。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外id...有联合查询嵌套查询。...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外id,去再另外一个表里面查询数据,

95621

Mybatis sql映射文件浅析 Mybatis简介(三)

",你的参数map需要存在  key=id  的元素 parameterType也支持list,parameterType="list"可以借助于动态SQL的foreach 进行循环 如果是基本数据类型的...id和result,对于唯一标志使用id来表示 关联的嵌套查询 对于一个association还可以对他进行嵌套查询,也就是在查询中进行查询 比如官方示例中 <resultMap id="blogResult"type...对于collection也可以采用类似association中的select元素进行嵌套查询 原理也是类似,检索出来结果后,借助于select指定的查询语句,循环查询 <resultMap id="...借助于<em>嵌套</em><em>查询</em>的形式 select属性,<em>可以</em>进行<em>嵌套</em><em>查询</em>,通过<em>嵌套</em><em>查询</em>的方式,相当于经过这个select,内部的<em>字段</em>映射部分被路由到另一个ResultMap(ResultType)中了 而不需要在这个ResultMap...中逐个重新的进行<em>字段</em>的映射指定 但是select会有1+N的问题,但是<em>使用</em>select<em>时</em>这种<em>使用</em>外部ResultMap(resultType)的形式却是很有实用意义 因为如果<em>可以</em>进行分离,被剥离的那一部分既<em>可以</em>单独<em>使用</em>

94040

【实战】Tp5+小程序(二)--接口编写

(['id', 'name']); 8-5 在模型内部隐藏字段 1.对嵌套的数据字段隐藏 最好的办法:在相应的模型中定义相应的属性。...from=1 =》 图片来自当前项目,存储的是 相对路径 from=2 =》 图片来自网络,存储的是 绝对路径 即: from=1 ,才需要对 url 进行相关操作。...8-8 自定义模型基 1.对于多个模型处理 url 字段,为增强代码的复用性,可将该处理方法封装到模型model/BaseModel.php中。...8-18 最近新品接口编写 1.TP5 框架自带时间更新操作,使用模型操作数据库插入记录,自动带上create_time; 更新操作自动带上updated_time;删除自动带上delete_time...在ExceptionHandler.php中会调用父的render()方法,导致框架的异常处理找不到程序中自定义的异常处理,从而会有报错提示。

7.8K62

面试官:请讲一下MyBatis是如何关联关系?

,引入两张表的主键作为,两个主键成为联合主键或使用新的字段作为主键。...在元素中,通常可以配置以下属性: property:指定映射到的实体对象属性,与表字段一 一对应 column:指定表中对应的字段 javaType:指定映射到实体对象属性的类型...select:指定引入嵌套查询的子SQL语句,该属性用于关联映射中的嵌套查询 fetchType:指定在关联查询是否启用延迟加载。...嵌套查询是在查询SQL中嵌入一个子查询SQL; 嵌套查询会执行多条SQL语句; 嵌套查询SQL语句编写较为简单; 第二种: 嵌套结果是使用嵌套结果映射来处理重复的联合结果的子集。...在数据库中,多对多的关联关系通常使用一个中间表来维护,中间表中的订单id作为参照订单表的id,商品id作为参照商品表的id。

66120

快速搞定MyBatis面试题

Mapper 接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为 key 值,可唯一定位一个 MapperStatement。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面配置 association 节点配置一对一的可以完成。...嵌套查询是先查一个表,根据这个表里面的结果的外 id,去再另外一个表里面查询数据,也是通过 association 配置,但另外一个表的查询通过 select 属性配置。...有联合查询嵌套查询。...联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的结果的外id,去再另外一个表里面查询数据

98120

经验拾忆(纯手工)=> Python-

字段(ForeignKeyField) 普通外 class BaseModel(Model): # 基 name = CharField(max_length=10) class...这就是级联删除 on_update=Cascade, # 级联更新,原理同 on_delete ) 层级外(通常用于层级分类,自关联查询): class Category...,True 代表唯一索引 (('字段1', '字段2'), False), # 字段1与字段2整体作为索引,False 代表普通索引 ) 需要注意的是,上面语法,三层元组嵌套...: class Meta: primary_key = CompositeKey('字段1', '字段2') # primary_key = False # 也可以使用主键...表改名: 注:我说的改名只是查询的临时名 下一篇文章查询,会提到 字段改名, 格式: 字段.alias('新字段名') 那表改名也差不多,有2种方式: 方式1: 格式: 表

1.5K10

20+ 道常见的 MyBatis 面试题

使用#{}可以有效的防止SQL注入,提高系统安全性。 7、实体中的属性名和表中的字段名不一样 ,怎么办 ? 第1种:通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体的属性名一致。...Mapper接口是没有实现的,调用接口方法,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。...Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象可以根据对象关系模型直接获取,所以它是全自动的。...有联合查询嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置association节点配置一对一的可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外id...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外id,去再另外一个表里面查询数据,

54410

2022 最新 MyBatis 面试题

7、实体中的属性名和表中的字段名不一样 ,怎么办 ? 第 1 种 : 通过在查询的 sql 语句中定义字段名的别名 , 让字段名的别名和实体 的属性名一致。...Mapper 接口是没有实现的,调用接口方法 ,接口全限名 +方法名拼接字符 串作为 key 值, 可唯一定位一个 MapperStatement。...Hibernate 属于全自动 ORM 映射工具, 使用 Hibernate 查询关联对象或者关联 集合对象可以根据对象关系模型直接获取, 所以它是全自动的。...有联合查询嵌套查询 ,联合查询是几个表联合查询 ,只查询一次 , 通过 在 resultMap 里面配置 association 节点配置一对一的可以完成; 嵌套查询是先查一个表 ,根据这个表里面的结果的...联合查询是几个表联合查询,只查询一次 ,通过 在 resultMap 里面的 collection 节点配置一对多的可以完成; 嵌套查询是先查 一个表,根据这个表里面的 结果的外 id,去再另外一个表里面查询数据

11210
领券