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

做公司网站建设价格seo如何优化网站推广

做公司网站建设价格,seo如何优化网站推广,新疆生产建设兵团网站公安局,湖南省人民政府官网登录文章目录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.tj-hxxt.cn/news/63603.html

相关文章:

  • 深圳做自适应网站设计百度免费下载安装
  • 企业网站建设美丽网站服务器软件
  • 电商网站的模式网址缩短
  • 网站建设与搜索百度大全免费下载
  • 思途旅游网站建设排名优化方法
  • 毕业设计都是做网站吗网络营销做得比较成功的企业
  • 什么网站专门做外贸批发哈尔滨seo公司
  • 创一个公司要多少钱seo优化报告
  • wordpress图片768好吗seo关键词排名系统
  • 网博士自助建站系统微信推广平台哪里找
  • 大邑做网站互联网平台推广是什么意思
  • 足球网站怎么做的三只松鼠的软文范例
  • 威客做的比较好的网站有哪些宁波seo资源
  • 白日梦怎么做的网站企业网站推广的形式有
  • 无锡做设计公司网站微信朋友圈广告如何投放
  • 福建住房和城乡建设网站证书查询关键词排名优化如何
  • 龙华响应式网站建设推广app的软文案例
  • dedecms 网站安装教程推广app
  • 哪个网站做超链接百度投广告怎么收费
  • 企石做网站怎么在百度上推广自己的产品
  • 如何介绍自己做的网站seo投放是什么意思
  • 做网站的技术体系seo网站优化收藏
  • 南京建设厅官方网站网站建设全网营销
  • 金华做网站建设公司app开发平台
  • 漳州网站建设公司推荐淘宝怎么提高关键词搜索排名
  • 企业网站建设教程视频最新军事新闻事件今天
  • 模板王网站怎么下载不了模板渠道策略的四种方式
  • 广州建设网站的公司哪家好怎么创建网站?
  • 做雇主品牌的网站恩城seo的网站
  • 物流网站建设方案百度热门搜索排行榜