Mybatis复习

Posted maplesu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis复习相关的知识,希望对你有一定的参考价值。

用mapper.xml的映射文件实现DAO的接口,需要两个配置文件,一个是核心配置xxxconf.xml和mapper.xml,得把mapper.xml的地址写进核心配置中

 

官方推荐使用mapper动态代理开发,即mapper里面的对象实现了接口功能

 

 selectOneselectList

 

如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。

 

typeAliases(类型别名)

 

批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感

 

mappers(映射器)配置的几种方法,基本都是要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中

like ‘%${value}%‘ 模糊查询

#{}${}

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入 #{}可以接收简单类型值或pojo属性值 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换 ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value

包装对象:Pojo类中的一个属性是另外一个pojo。一般叫QueryVo

 

 

动态拼接sql,用标签组合if where等

一对多查询

 

逆向工程注意修改以下几点:

 

  1. 修改要生成的数据库表
  2. pojo文件所在包路径
  3. Mapper所在的包路径

 

  1. 逆向工程生成的代码只能做单表查询
  2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
  3. 一张表会生成4个文件

 

 

 

 

主键自增返回

查询idsql

SELECT LAST_INSERT_ID()

<!-- 保存用户 -->

<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">

<!-- selectKey 标签实现主键返回 -->

<!-- keyColumn:主键对应的表中的哪一列 -->

<!-- keyProperty:主键对应的pojo中的哪一个属性 -->

<!-- order:设置在执行insert语句前执行查询id的sql,孩纸在执行insert语句之后执行查询id的sql -->

<!-- resultType:设置返回的id的类型 -->

<selectKey keyColumn="id" keyProperty="id" order="AFTER"

resultType="int">

SELECT LAST_INSERT_ID()

</selectKey>

INSERT INTO `user`

(username,birthday,sex,address) VALUES

(#{username},#{birthday},#{sex},#{address})

</insert>

 

 


 

 

 


以上是关于Mybatis复习的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis复习总结

MyBatis复习总结

MyBatis - 系统化复习加强 (2020年4月11日始 持续更新)

Mybatis整理复习

Mybatis复习笔记

Mybatis框架复习随笔