mybatis_基础学习_02

1. 有关selectKey标签

在这里插入图片描述
在接口配置文件标签里,添加标签及内容,会得到数据库id返回值然后底层调用User.setid的方法将id的值设置给传进来的对象,可以在java代码中通过user.getId方法获得此数值.其中order="AFTER"表示中的sql语句执行完毕后再执行标签的内容.

2. 有关typeAliases标签

在这里插入图片描述
在SqlMapConfig.XML文件里做如上配置,则在具体的接口配置文件里,需要写到全类限定名时可以使用简写的别名.
其中<typeAlias type="lorihen.domain.User alias=“anything”/>写法表示单独的类User可以使用的别名anything.
而<package name="lorihen.domain/>表示lorihen.domain包下的所有类都可以直接写类名,不用写全类限定名.

3. 配置 查询结果的列名 和 实体类的属性名的对应关系

有两种方式,并且同时只能使用一种

3.1 在sql语句中编写

as的前面表示字段名,后面表示对象属性名,
拿到的字段值将会调用对应属性名的set方法保存,最终封装为一个对象

3.2 使用<resultmap> 标签

  <!--配置 查询结果的列名 和 实体类的属性名的对应关系-->
  <!--id属性用于和select标签匹配,type指对象-->
<resultMap id="userMap" type="lorihen.domain.User">
    <!--主键字段的对应使用id标签-->
    <id property="_id" column="id"></id>
    <!--非主键字段的对应使用result标签-->
    <result property="_username" column="username"></result>
    <result property="_birthday" column="birthday"></result>
    <result property="_sex" column="sex"></result>
    <result property="_address" column="address"></result>
</resultMap>

4. 不使用SqlMapConfig.XML配置文件的运行方法

在这里插入图片描述

面试题:

  • #{}与${}的区别在哪里

    #{} 表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换,#{} 可以有效防止 sql 注入。#{} 可以接收简单类型值或 pojo 属性值。
    而 ${} 表示拼接 sql 串通过 ${} 可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换, ${} 可以接收简单类型值或 pojo 属性值,如果 parameterType 传输单个简单类型值, ${} 括号中只能是 value。

猜你喜欢

转载自blog.csdn.net/terstdfhuc/article/details/83449794