当前位置: 首页 > news >正文

如何申请电商网站手机怎么制作软件app

如何申请电商网站,手机怎么制作软件app,女生学动漫制作技术好就业吗,织梦dedecms网站内容页文章目录1.什么是MyBatis?2.#{}和${}的区别是什么?3.MyBatis的一级、二级缓存4.MyBatis的优缺点5.当实体类中的属性名和表中的字段名不一样 ,怎么办 ?6.模糊查询like语句该怎么写?7.Mybatis是如何进行分页的?分页插件的原理是什…

文章目录

    • 1.什么是MyBatis?
    • 2.#{}和${}的区别是什么?
    • 3.MyBatis的一级、二级缓存
    • 4.MyBatis的优缺点
    • 5.当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
    • 6.模糊查询like语句该怎么写?
    • 7.Mybatis是如何进行分页的?分页插件的原理是什么?
    • 8.如何执行批量插入?
    • 9.Mybatis动态sql有什么用?执行原理?有哪些动态sql?
    • 10.Mapper.xml除了常见的select|insert|updae|delete标签之外,还有哪些标签?
    • 11.MyBatis的XML映射文件中,不同的XML映射文件,id是否可以重复?
    • 12.为什么说MyBatis是半自动ORM映射框架?它与全自动的区别在哪里?
    • 13.MyBatis实现一对一有几种方式?具体怎么操作的?
    • 14.MyBatis实现一对多有几种方式,具体怎么操作的?
    • 15.MyBatis是否支持延迟加载?如果支持,它的实现原理是什么?
    • 16.什么是MyBatis的接口绑定?有哪些实现方式?
    • 17.使用MyBatis的Mapper接口调用时有哪些要求?
    • 18.简述MyBatis的插件运行原理,以及如何编写一个插件?

1.什么是MyBatis?

  1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。
  2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
  3. 通过 xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。(从执行 sql 到返回 result 的过程)。

2.#{}和${}的区别是什么?

1.#{}是预编译处理,KaTeX parse error: Expected 'EOF', got '#' at position 23: …换。 2.Mybatis在处理#̲{}时,会将sql中的#{}替…{}时,就是把${}替换成变量的值。
4.使用#{}可以有效的防止SQL注入,提高系统安全性。

3.MyBatis的一级、二级缓存

Mybatis一级缓存(默认开启)
是SqlSession级别的缓存
默认开启
在这里插入图片描述

一级缓存清除方法
执行SqlSession的commit(执行插入、更新、删除操作后)
执行SqlSession的close方法
执行SqlSession的clearCache方法
映射文件XML中添加flushCache=“true”

Mybatis二级缓存(默认关闭,一般不建议使用)

  • namspace/mapper级别(跨sqlSession)的缓存
  • 默认不开启
  • 二级缓存的开启需要进行配置,实现二级缓存的时候,MyBatis要求返回的POJO必须是可序列化的,也就是要求实现- - Serializable接口。配置方法很简单,只需要在映射XML文件配置 就可以开启 二级缓存了
  • 二级缓存因为是跨sqlSession的,会存在严重的脏读问题 (脏读问题解释)
  • 二级缓存的弊大于利,一般是设置为关闭二级缓存
  • 实际开发中,会使用第三方来缓存,比如redis

二级缓存清除方法
映射文件XML中添加flushCache=“true”

4.MyBatis的优缺点

优点

  1. 基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML标签,支持编写动态 SQL 语句,并可重用。
  2. 与 JDBC 相比,减少了大量代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;
  3. 很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要JDBC 支持的数据库 MyBatis 都支持)。
  4. 够与 Spring 很好的集成;
  5. 提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

缺点

  1. SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL 语句的功底有一定要求。
  2. SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

5.当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

第1种,通过在查询的 sql 语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。
在这里插入图片描述

第2种,通过来映射字段名和实体类属性名的一 一对应的关系。

在这里插入图片描述

6.模糊查询like语句该怎么写?

  1. 在Java代码中添加sql通配符。
    在这里插入图片描述

  2. 在sql语句中拼接通配符,会引起sql注入。
    在这里插入图片描述

  3. 使用bind动态标签拼接通配符,不会引起sql注入。

在这里插入图片描述

7.Mybatis是如何进行分页的?分页插件的原理是什么?

1.Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内存分页,而非物理分页。可以在 sql 内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。
2.分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写sql,根据 dialect 方言,添加对应的物理分页语句和物理分页参数。

8.如何执行批量插入?

  1. 使用MyBatis foreach动态sql
    在这里插入图片描述

在这里插入图片描述

  1. 使用Java代码

9.Mybatis动态sql有什么用?执行原理?有哪些动态sql?

1.MyBatis的动态sql可以写在Mapper.xml内,以标签的形式编写动态sql,执行原理是根据表达式的值完成逻辑判断并动态拼接sql。
2.Mybatis 提供了 9 种动态 sql 标签:
trim | where | set | foreach | if | choose| when | otherwise | bind 。

10.Mapper.xml除了常见的select|insert|updae|delete标签之外,还有哪些标签?

1.、、、、,加上动态 sql 的 9 个标签,
2.其中 为 sql 片段标签,通过 标签引入 sql 片段, 为不支持自增的主键生成策略标签。

11.MyBatis的XML映射文件中,不同的XML映射文件,id是否可以重复?

1.不同的 XML 映射文件,如果配置了 namespace,那么 id 可以重复;如果没有配置 namespace,那么 id 不能重复。
2.原因就是 namespace+id 是作为Map <String, MapperStatement>的 key使用的,如果没有 namespace,就剩下 id,那么,id 重复会导致数据互相覆盖。有了 namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然也就不同。

12.为什么说MyBatis是半自动ORM映射框架?它与全自动的区别在哪里?

1.Hibernate 属于全自动 ORM 映射框架,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
2.Mybatis在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射框架。

13.MyBatis实现一对一有几种方式?具体怎么操作的?

  1. 有联合查询和嵌套查询两种方式。
  2. 联合查询是几个表联合查询,只查询一次, 通过在标签里面配置标签配置一对一的类就可以完成。

SysUserMapper接口
在这里插入图片描述

SysUserMapper.xml
在这里插入图片描述

IdCardMapper.xml
在这里插入图片描述

  1. 嵌套查询是先查一个表,根据这个表里面的结果的外键 id,再去另外一个表里面查询数据,也是通过标签配置,但另外一个表的查询通过标签的select属性配置。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

14.MyBatis实现一对多有几种方式,具体怎么操作的?

  1. 有联合查询和嵌套查询两种方式。
  2. 联合查询是几个表联合查询,只查询一次,通过在标签里面的标签配置一对多的类就可以完成。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 嵌套查询是先查一个表,根据这个表里面的结果的外键id,再去另外一个表里面查询数据,也是通过配置,但另外一个表的查询通过标签的select属性配置。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

15.MyBatis是否支持延迟加载?如果支持,它的实现原理是什么?

  1. Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。
  2. lazyLoadingEnabled:延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。
  3. aggressiveLazyLoading:当开启时,任何方法的调用都会加载该对象的所有属性。否则,每个属性会按需加载(参考lazyLoadTriggerMethods)。
  4. lazyLoadTriggerMethods:指定哪个对象的方法触发一次延迟加载。用逗号分隔的方法列表,默认执行下面方法就触发延迟加载:equals,clone,hashCode,toString。
  5. fetchType:为每一次查询决定是否延迟加载,可以覆盖lazyLoadingEnabled配置。lazy:延迟加载;eager:积极加载。

16.什么是MyBatis的接口绑定?有哪些实现方式?

  1. 接口绑定,就是在 MyBatis 中任意定义接口,然后把接口里面的方法和 SQL 语句绑定, 我们直接调用接口方法就可以,这样比起原来了 SqlSession 提供的方法我们可以有更加灵活的选择和设置。
  2. 接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上@Select、@Update 等注解,里面包含 Sql 语句来绑定。
  3. 另外一种就是通过 xml里面写 SQL 来绑定, 在这种情况下,要指定 xml 映射文件里面的 namespace 必须为接口的全路径名。当 Sql 语句比较简单时候,用注解绑定, 当 SQL 语句比较复杂时候,用 xml 绑定,一般用 xml 绑定的比较多。

17.使用MyBatis的Mapper接口调用时有哪些要求?

  1. Mapper 接口方法名和 Mapper.xml 中定义的每个 sql 的 id 相同;
  2. Mapper 接口方法的输入参数类型和 Mapper.xml 中定义的每个 sql 的parameterType 的类型相同;
  3. Mapper 接口方法的输出参数类型和 mapper.xml 中定义的每个 sql 的resultType 的类型相同;
  4. Mapper.xml 文件中的 namespace 即是 mapper 接口的类路径。

18.简述MyBatis的插件运行原理,以及如何编写一个插件?

  1. Mybatis 仅可以编写针对 ParameterHandler、ResultSetHandler、StatementHandler、Executor 这 4 种接口的插件,Mybatis 使用 JDK 的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这 4 种接口对象的方法时,就会进入拦截方法,具体就是 InvocationHandler 的 invoke()方法,当然,只会拦截那些你指定需要拦截的方法。
  2. 编写插件:实现 Mybatis 的 Interceptor 接口并复写 intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,最后,需要在配置文件中配置你编写的插件。
http://www.yayakq.cn/news/619052/

相关文章:

  • 建设网站的计划书做网站需要会什么语言
  • 餐饮网站建设服务器北京建设网站专家
  • 网站首页面设计网站开发用盗版犯法
  • 亚马逊做网站发礼物换评价开发app定制公司
  • 东营网站建设怎么建设哪个网站设计素材多
  • 料神wordpress建站教程织梦模板国外网站
  • 织梦网站登录广州专业网站建设哪家好
  • 天津河东做网站贵吗jsp电子商务网站开发源码
  • 建筑网站 法人签字江苏华江建设集团网站
  • 企业建设网站注意点厦门招聘网
  • 做网站后台有前途吗旅游网站开发的结论
  • 网站紧急维护产品推广怎么做
  • 网站设计需要什么技术网站seo入门
  • 深圳建站服务公司深圳甜富设计
  • 鲜花网站设计论文济宁网站建设 水木
  • 工信和信息化部网站大数据精准获客平台
  • 贵州城乡建设官方网站男人女人做性关系网站
  • 音乐网站开发代码地接做的网站
  • 江西省住房和建设规划局局网站下载ppt模板幻灯片模板
  • 360做的网站首页在线平面图设计
  • 网站点击率如何做网站优化建设宁夏
  • 新博念 足球网站开发北京网站建设公司朝阳
  • 自己建立网站教程不用实名认证的网页游戏
  • 网站qq交谈怎么做的物联网模块
  • 求大哥给个狼站2022网站搭建品牌
  • 建设工程消防验收网站媒介
  • 黄山网站建设免费咨询大企业网站建设费用
  • 网站风格有哪些做化妆品等的网站
  • 哪些企业网站做的好自己做国外网站买衣服
  • 软件工程专业招聘网站网站购买空间多少钱