第1章 初识MyBatis框架
习题
一、填空题
1.MyBatis的删除操作在映射文件中是通过配置【<delete>】元素来实现的。
2.MyBatis映射文件中<mapper>元素是配置文件的根元素,它包含一个【namespace 】属性,该属性为这个<mapper>指定了唯一的命名空间。
3.使用MySQL中的【 concat() 】函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。
4.l作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取【 数据库连接】。
5.【 MyBatis 】是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
二、判断题
1.MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。( x)
2.使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。( X )
3.ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。( v )
4.MyBatis的更新操作也需要进行事务提交。( v )
5.创建的映射文件中的SQL语句要以面向对象的写法进行书写。( x )
三、选择题
1.MyBatis的删除操作有关说发错误的是。( D )
A: MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作时,也需要封装整个实体类。
2.MyBatis的更新操作有关说发错误的是。(D )
A: MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的 。
B: MyBatis的更新操作也需要进行事务提交。
C: MyBatis的更新操作执行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。
3.关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。( C )
A: 使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。
B: 可以使用MySQL中的concat()函数进行字符串拼接。
C: 使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D: 使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。
4.有关MyBatis工作原理说法错误的是。( C )
A: MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B: MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C: 可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D: SqlSession对象,该对象中包含了执行SQL的所有方法
5.使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)mysql下载哪个版本好2022。( C )
A: 面向业务B: Hibernate C: 面向对象 D: MyBatis
四、简答题
1.请简要介绍MyBatis的工作原理。
(1)读取MyBatis配置文件l。
(2)由MyBatis配置文件加载映射文件l。
(3)通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。
(4)由会话工厂创建SqlSession对象。
(5)MyBatis底层定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态的生成需要执行的SQL语句。
(6)在Executor接口的执行方法中,包含一个MappedStatement类型的参数,该参数是对映射信息的封装。
(7)在执行方法时,MappedStatement对象会对用户执行SQL语句的输入参数进行定义封装。
(8)在数据库中执行完SQL语句后,MappedStatement对象会对SQL执行输出的结果进行定义封装。
第2章 MyBatis的核心配置
习题
一、填空题
1.当数据表中的列和需要返回的对象的属性不完全一致, MyBatis是不会自动赋值的。此时,就可以使用【 <resultMap> 】元素进行处理。
2.<resultMap>元素的子元素<id>用于表示哪个列是【主键 】,而【 <result> 】元素用于表示POJO和数据表中普通列的映射关系。
3.MyBaits映射文件中使用<include>元素的【refid 】属性可以引用自定义的代码片段,其
属性值为自定义代码片段的id。
4.MyBatis映射文件中<insert>的<selectKey>子元素的order属性可以被设置为【 BEFORE】或【 AFTER 】。
5.对于数据源的配置,MyBatis框架提供了UNPOOLED、【POOLED】和JNDI三种数据源类型。
二、判断题
1.<resultMap>的子元素<association>和<collection>用于处理多表时的关联关系。( v)
2.MyBatis映射文件的<insert>元素的属性与<select>元素的属性大部分相同,但还包含了3个特有属性。(v )
3.MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。( v )
4.映射文件中可以包含多个id值相同的<resultMap>元素。( x )
5.与<insert>元素一样,<update>和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。( v )
三、选择题
1.以下有关<sql>元素说法错误的是。( c )
A: <sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
B: 使用<include>元素的refid属性可以引用自定义的代码片段。
C: 使用<include>元素refid的属性值为自定义代码片段的name。
D: <sql>元素是<mapper>元素的子元素。
2.以下有关MyBatis映射文件中<insert>元素说法正确的是。( c )
A: <insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果。
B: <insert>元素的属性与<select>元素的属性相同。
C: keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D: useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。
3.以下关于<select>元素及其属性说法错误的是。( c )
A: <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B: parameterType属性表示传入SQL语句的参数类的全限定名或者别名。
C: resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D: 在同一个映射文件中可以配置多个<select>元素。
4.关于<typeHandlers>元素说法错误的是。( d )
A: <typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种。
B: 通过<typeHandlers>元素的子元素<typeHandler>就可以配置单个类型处理器。
C: 通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器。
D: <typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描pe包下所有的文件,并把它们作为类型处理器。
5.有关MyBatis配置文件中<settings>元素的说法错误的是。( c )
A: <settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B: 虽然不配置<settings>元素,也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及它们的作用还是十分必要的。
C: <settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D: <settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。
四、简答题
1.请简述MyBatis映射文件中的常用元素及其作用。
<mapper>:映射文件的根元素,该元素只有一个namespace属性,用于区分不同的mapper,全局唯一。
<insert>:用于映射插入语句。
<delete>:用于映射删除语句。
<update>:用于映射更新语句。
<select>:用于映射查询语句。
<sql>:定义可以重用的SQL块。
<resultMap>:描述数据库结果集和对象的映射关系。
第3章 动态SQL
习题
一、填空题
1.当在MyBaits文件中使用了<bind>元素,在SQL语句中可以直接引用<bind>元素的【name】属性值即可进行动态SQL组装。
2.在使用MyBaits的<foreach>时,如果传入的参数是多个的时候,就需要把它们封装成一个Map了,这时候collection属性值就为Map的【 键 】。
3.在MyBaits映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现【SQL语法错误】。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论