0
点赞
收藏
分享

微信扫一扫

MyBatis知识点笔记


目录

​​mybatis mapper-locations的作用?​​

​​mybatis configuration log-impl 作用?​​

​​resultType和resultMap的区别?​​

​​ 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法​​

​​取值方式#和$区别​​

​​动态标签有哪些​​

​​MyBatis常用注解有哪些​​

​​注解里直接用动态标签为什么报错​​

​​注解方式新增数据后如何回填主键ID值​​

​​同一个方法能否既用注解方式又用XML方式​​

mybatis mapper-locations的作用?

mapper接口与mapper接口对应的配置文件进行一个绑定 如果没有绑定会报错 无效的绑定语句 未

找到 配置扫描路径 


classpath:mapper/*.xml


classpath就是resources *是通配符所有的xml文件

MyBatis知识点笔记_mybatis

mybatis configuration log-impl 作用?

打印mysql日志 使用


mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


就可以将sql打印在控制台

resultType和resultMap的区别?

resultType只要数据库和实体类字段名一样就能查询到数据 但是如果字段名不一样 就会导致有些字段名为null 映射不上

resultMap可以解决数据库表的字段名和实体类属性名不一致的问题

MyBatis知识点笔记_主键_02

 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法

在使用mybatis的时候 我们插入数据 我们希望返回主键id 以便后面使用 正常情况是不可能返回的

我们必须要告诉mybatis 并不是返回的是主键 而是将主键的值写入到我们配置的keyProperty

<!-- useGeneratedKeys 插入后返回主键 keyColumn指定数据库主键 
keyProperty指定在Java 实体类中对应的主键 -->
<insert id="inertPojo" useGeneratedKeys="true" keyColumn="pojo_id" keyProperty="Pojo">
<!-- 或者直接不显示的写key(主键) -->
insert into tb_pojo(key, param1, param2, ...)
values
(null, #{param1}, #{param2}, ...)
</insert>

取值方式#和$区别

#传入的参数在SQL中显示为字符串,$传入的参数在SqL中直接显示为传入的值.

#方式能够很大程度防止sql注入,$方式无法防止Sql注入;

动态标签有哪些

MyBatis提供了9种动态SQL标签:trim、where、set、foreach、if、choose、when、otherwise、

bind;

MyBatis常用注解有哪些

@Select 查询

@Insert 插入

@Update 修改

@Delete 删除

@Results和@Result 实体类和数据库字段名称不一样时 使用他们来隐射

@Options 添加属性​​useGeneratedKeys = true​​​和​​keyProperty = "id"​​即可在数据添加后获取添加

数据的ID值。

@ResultMap 注解就一个作用,使用已经定义好的@Results或XML配置里已经写好的resultMap。

@One,用于一对一的关系映射

@Many,用于一对多的关系映射

@SelectKey 返回自增id

注解里直接用动态标签为什么报错

要加上script标签 成为脚本sql

注解方式新增数据后如何回填主键ID值

使用@Options 添加属性​​useGeneratedKeys = true​​​和​​keyProperty = "id"​​即可在数据添加后获取

添加数据的ID值。

同一个方法能否既用注解方式又用XML方式

不能  只能在注解和xml方式二选一

举报

相关推荐

0 条评论