互联网轻量级框架SSM-查缺补漏第五天

Posted shiboinfo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了互联网轻量级框架SSM-查缺补漏第五天相关的知识,希望对你有一定的参考价值。

  简言:这个地方我就草草过了,NBA圣诞大战,偷偷看比赛,真香~

 

第五章映射器

5.2select元素

  自动映射驼峰映射:MyBatis提供了自动映射功能,在默认的情况下自动映射功能是开启的。

  在setting元素中,

  autoMappingBehavior控制自动映射,取值范围:

  • NONE:不进行自动映射。
  • PARTIAL:默认值,只对没有嵌套结果集进行自动映射。
  • FULL:对所有的结果集进行自动映射,包括嵌套结果集。

mapUnderscoreToCamelCase控制驼峰映射,驼峰映射是按照驼峰命名的方式自动映射,例如数据库字段为role_name,则POJO属性名为roleName。

  传递多个参数的方式:

  • 使用map接口传递参数。
  • 使用注解传递参数:在接口类方法形参前加入注解@Param("roleName")
  • 通过JavaBean传递参数
  • 混合使用

  resultMap映射结果集:

为了支持复杂映射,select元素提供了resultMap属性。先定义resultMap属性。

<resultMap type="role" id="roleMap">
    <id property="id" column="id"/>
    <result property="roleName" column="role_name"/>
</resultMap>
<select id="getRole" parameterType="Long" resultMap="roleMap">
    select id,role_name  from t_role where id = #{id}
</select>

resultMap的子元素id代表组件,而result代表其属性,id和result元素的属性property代表POJO的属性名称,而column代表SQL的列名。

  5.3insert元素

  主键回填,JDBC中的Statement对象在执行插入的SQL后,可以通过getGennerateKeys方法获得数据库生成的主键(需要数据库驱动支持),还要配置其属性keyProperty或keyColumn,告诉系统把生成的组件放入哪个属性中。

<insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id">
    insert into t_role(role_name,note) values(#{roleName},#{note})
</insert>

  自定义主键:

  

<insert id="insertRole" parameterType="role" >
    <selectKey keyProperty="id" resultType="long" order="BEFORE">
           select if(max(id)=null,1,max(id)+3) from t_role
    </selectKey>
    insert into t_role(role_name,note) values(#{roleName},#{note})
</insert>

order设置为BEFORE,说明它将于当前定义的SQL前执行,这样就可以自定义主键的规则了,也可以设置为AFTER这样它就会在插入语句之后执行了。

  5.7 resultMap元素

  resultMap的作用是定义映射规则、级联的更新、定制类型转换器等。(有一些子元素,用到说的时候再说把)

 

以上是关于互联网轻量级框架SSM-查缺补漏第五天的主要内容,如果未能解决你的问题,请参考以下文章

互联网轻量级框架SSM-查缺补漏第七天(MyBatis的解析和运行原理)

互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)

Java EE互联网轻量级框架整合开发— SSM框架(中文版带书签)原书代码

「查缺补漏」巩固你的Nginx知识体系

Android查缺补漏(线程篇)-- AsyncTask的使用及原理详细分析

查缺补漏系统学习 EF Core 6