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

泉州市住房与城乡建设局网站重庆网站备案

泉州市住房与城乡建设局网站,重庆网站备案,高端装饰公司网站设计,百度竞价是什么意思什么是MyBatis? Mybatis 是⼀个半 ORM(对象关系映射)框架,它内部封装了 JDBC。 它让开发者在开发时只需要关注 SQL 语句本身,不需要花费精⼒去处理加载驱动、创建连接等繁杂的过程 缺点: SQL语句的编写⼯作量较⼤ SQ…

什么是MyBatis?

Mybatis 是⼀个半 ORM(对象关系映射)框架,它内部封装了 JDBC
它让开发者在开发时只需要关注 SQL 语句本身,不需要花费精⼒去处理加载驱动、创建连接等繁杂的过程
缺点:
SQL语句的编写⼯作量较⼤
SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库

MyBatis运行过程?

1)创建SqlSessionFactory
2)通过SqlSessionFactory创建SqlSession
3)通过sqlsession执⾏数据库操作
4)调⽤session.commit()提交事务
5)调⽤session.close()关闭会话

#{}和${}的区别?

#{} 是占位符,预编译处理; KaTeX parse error: Expected 'EOF', got '#' at position 23: …接符**,没有预编译处理。 #̲{} 可以**有效的防⽌SQL…{} 不能防⽌SQL 注⼊

什么是预编译

预编译又称为预处理 , 进行代码文本的替换工作

mapper中传递多个参数?

@Param传参。在Dao层函数的参数前面添加@Param注解指定每个参数的名称

public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);<select id="selectUser" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}</select>

map传参。将多个参数封装成Map并传递到Mapper中。这种方法适合传递多个参数。#{}里面的名称对应的是Map里面的key名称。

public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}</select>

JavaBean传参。#{}里面的名称对应的是 User类里面的成员属性。
和Map的区别:需要建一个实体类, parameterType处填写实体类路径

public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>

顺序传参法。使用#{}#{}里面的数字代表传入参数的顺序(基本不使用)

实体类属性名和表中字段名不⼀样 ,怎么办?

在SQL语句中给表中字段名起别名,让字段名的别名和实体类的属性名⼀致就可以了。

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

推荐使用CONCAT函数
CONCAT(‘%’,#{question},‘%’)

MyBatis 动态 sql 是做什么的?都有哪些动态 sql?

动态 sql 可以让我们在 xml 映射文件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql 的功能。
MyBatis 提供了多种动态 sql 标签,比如:

  • <if></if>
  • <where></where>(trim,set)
  • <choose></choose>(when, otherwise)
  • <foreach></foreach>

MyBatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式

使用 <resultMap> 标签,逐一定义列名和对象属性名之间的映射关系
有了列名与属性名的映射关系后,MyBatis 通过反射创建对象。同时使用反射给对象的属性逐一赋值并返回。
在SQL语句中给表中字段名起别名,让字段名的别名和实体类的属性名⼀致就可以了。

MyBatis 是否支持延迟加载

MyBatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association 指的就是一对一,collection 指的就是一对多查询

延迟加载

延迟加载是一种优化技术,只在需要时才加载对象。可以减少应用程序启动时间和内存占用

MyBatis 执行一对一、一对多的关联查询

ResultMap查询
MyBatis 提供了 ResultMap 来定义查询结果的映射关系,从而实现一对一的关联查询。首先,我们需要定义两个实体类,然后创建一个 ResultMap,将它们关联在一起。
创建两个实体类 AB,然后使用 ResultMap 将它们关联在一起。通过 association 标签,我们告诉 MyBatis 在查询A时同时查询B信息,并将结果映射到 B 对象的 A 属性中。

使用嵌套查询
分别定义了两个查询语句,一个查询书籍信息,另一个查询作者信息。然后,我们可以在代码中分别调用这两个查询,并将结果合并在一起,从而实现一对一关联查询。

MyBatis 都有哪些 Executor 执行器?它们之间的区别是什么?

MyBatis 有三种基本的 Executor 执行器:

  • SimpleExecutor(简单执行器) 每执行一次 update 或 select,就开启一个 Statement 对象,使用结束立刻关闭 Statement 对象
  • ReuseExecutor(重用执行器) 执行 update 或 select,以 sql 作为 key 查找 Statement 对象,存在就使用,不存在就创建,使用结束后,不关闭 Statement 对象,而是放置于 Map内,供下一次使用。简言之,就是重复使用 Statement 对象
  • BatchExecutor(批处理执行器):执行 update,将所有 sql 都添加到批处理中,等待统一执行。它缓存了多个 Statement 对象,每个 Statement 对象都是 addBatch()完毕后,等待逐一执行 executeBatch()批处理

MyBatis 中如何指定使用哪一种 Executor 执行器?

在 MyBatis 配置文件中,可以指定默认的 ExecutorType 执行器类型,也可以手动

include标签的作用

  • 通过include标签使SQL片段达到代码复用的目的。
    <select id="selectById" resultMap="BaseResultMap">selectmy.*FROMsys_user my<include refid="test_where"/></select><sql id="test_where">WHEREmy.id = 1</sql>-- 执行结果:select my.* FROM sys_user my WHERE my.id = 1 

MyBatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?

虽然 MyBatis 解析 xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以定义在任何地方,MyBatis 都可以正确识别。

原理:MyBatis 解析 A 标签,发现 A 标签引用了 B 标签,但是 B 标签尚未解析到,此时,MyBatis 会将 A 标签标记为未解析状态,继续解析余下的标签,待所有标签解析完毕,MyBatis 会重新解析那些被标记为未解析的标签


文章转载自:

http://AL3Vd4uA.qLsyf.cn
http://FkU96jh8.qLsyf.cn
http://YYn2n7vE.qLsyf.cn
http://vXI9zQHa.qLsyf.cn
http://SeKKTKmI.qLsyf.cn
http://iwDyFowI.qLsyf.cn
http://KIaFejll.qLsyf.cn
http://fPma1AKo.qLsyf.cn
http://Y8vDXSN9.qLsyf.cn
http://7ZNt8arK.qLsyf.cn
http://15KvYMcM.qLsyf.cn
http://nwJgpZQ7.qLsyf.cn
http://wLNiCnrv.qLsyf.cn
http://l3z2VJLb.qLsyf.cn
http://Shmv2mbA.qLsyf.cn
http://XN9B5bVm.qLsyf.cn
http://sZDnpc98.qLsyf.cn
http://afZ31QW1.qLsyf.cn
http://tf6S1IT5.qLsyf.cn
http://BJYnevMc.qLsyf.cn
http://8lNDja2S.qLsyf.cn
http://6QEjNOr8.qLsyf.cn
http://vuHCKA4l.qLsyf.cn
http://8ntbyqlt.qLsyf.cn
http://PVF7JLn5.qLsyf.cn
http://tdrD4xfF.qLsyf.cn
http://e2utQxnw.qLsyf.cn
http://VwVrfinc.qLsyf.cn
http://COn56Kr6.qLsyf.cn
http://b4jeesi5.qLsyf.cn
http://www.dtcms.com/wzjs/624576.html

相关文章:

  • 团购网站建设深圳网站设计的公司
  • 中学网上做试卷的网站一流 北京网站建设
  • 网站布局结构哪家公司建设网站
  • 中山网站建设中山怎么优化网站关键词排名
  • 建设信用卡在网站挂失块吗手机好看网站模板
  • 如何创作个人网站搜索关键词热度
  • 自适应网站欣赏wordpress无中断音乐插件
  • 大型php网站系统文山做网站的地方
  • 企业网站建设课件班级优化大师头像
  • 网站发语音功能如何做做最最优秀的视频网站
  • 推广网站制作软件项目管理工作内容
  • 自己有网站怎么推广网站的漂浮广告怎么做
  • 代做网站灰色关键词品牌建设运营规划
  • 成都市金堂县网站建设北太平庄做网站公司
  • 济南网站维护沈阳市城乡建设网站
  • 河南高端网站高端网站建设wordpress 分类下的文章
  • 最好的网站设计百度搜索推广流程
  • 从化做网站4006668800人工服务几点
  • 霸州放心的网络建站wordpress怎么添加icp
  • 连锁店网站建设网站设计器
  • 网站上的vr全景是怎么做的贵港网站建设动态
  • 购物建设网站费用六安百度公司六安百度推广
  • 网站建设光盘开发软件需要什么
  • 开封市建设中专网站青岛制作网站
  • 网站开发培训网哪里的赣州网站建设
  • wordpress实名认证发帖seo服务
  • 做网站需要什么基础手机可视化编程软件
  • 有关网站备案号规则wordpress 新建php页面模板
  • 班级网站页面设计北京的广告公司有哪些
  • 公司网站怎么做能被别人搜索到有没有专门做花鸟鱼虫的网站