MyBatis基础语法

这篇博客详细介绍了MyBatis的基础语法,包括namespace、property、column、javaType、jdbcType的配置,以及SqlSessionFactoryBuilder的作用。还讨论了参数处理,如单参数时的@Param使用,以及多参数时的处理方式。此外,提到了动态SQL的使用,如if、where、choose、trim和foreach标签的应用,以及如何进行关系关联配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.namespace用于指定dao(Mapper)层文件的路径;
2.property传入的值与po.SysUser的属性对应;
3.column传入的值与数据库的字段对应;
4.javaType传入的值(路径)是java这边的数据类型;
5.jdbcType传入的值是数据库那边的数据类型(但是需要以MyBatis给的值为标准);
6.配置文件,是MyBatis的一个核心;
7.SqlSessionFactoryBuilder()为移除性工具人,用完即丢
8.dao(Mapper)层,当参数只有一个时,可以不设置@Param值,并且在只有一个参数时,前后的参数(即dao/Mapper层方法里的参数,与编写Sql语句时,条件传入的参数)变量名也可不一致,但不建议这样做;
9.但是,如果加上了@Param的注解之后,注解中的参数就必须与编写Sql语句中的参数保持一致;
10.在有多个参数的时候,必须加上@Param(),且顺序无关;
11.模糊查询的时候,使用拼接的方式,使用函数CONCAT();
例如:CONCAT(’%’,CONCAT(#{参数},’%’));
12.查询不需要手动提交事务,但新增、修改、删除都需要;提交事务语句:变量.commit();
13.useGeneratedKeys返回主键;keyColumn指定主键列名;keyProperty指定主键属性(代表新增完后,返回到哪里去);
14.sql语句也可以公共化,可将大多数需要使用相同的代码抽取出来,进行封装;用到时候再引用即可;
例如:
需要封装的sql语句代码

引用时:
动态SQL
1.动态SQL是MyBatis的强大特性之一;
2.MyBatis中if标签的语法:
条件成立时,执行的语句
3…MyBatis中where标签的语法,在where里嵌套if标签
4.choose标签可以嵌套在where标签里面,也可不嵌套;
5.choose when otherwise该方法类似于switch语句,当有一个条件满足之后,后面的所有条件都不会再执行;
6.trim该函数一般用于去(清除)空格;但是在MyBatis中,则是用于去(清除)多余的and关键字,逗号,或者给sql语句前拼接"where",“set"以及"values”(“等前缀,或添加”)等后缀,可用于选择性插入、更新、删除或者条件查询等操作;并且trim也可以起到where的作用,只是在语法上有所不同(稍微复杂一点点)
7.trim的作用与where比较相似,trim标签里面的prefix属性代表当有值的时候拼接上所指定的关键字或符号(前缀),而prefixOverrides属性则是清除指定的最前面或者最后面的关键字或符号;suffix则是拼接后缀所指定的关键字或符号;
8.trim有选择性的新增,当传入的是哪几个值,它就会新增指定是那几个值,没有指定的,则不会新增;
9.有选择性的新增,那么也有选择性的修改,使用set或trim标签即可,set和trim标签里面嵌套if标签,而trim则需要设置prefix(前缀),suffixOverrides去掉后缀;
10.foreach循环一般用于查询中的where in的情况下;(不常用)
11.原本的sql语句使用语法为:

而使用MyBatis的foreach语法则为:

·collection代表的是需要遍历的集合/数组;
·item代表的是集合中的当个值;
·index代表的是索引;
(以上三个是以循环相关的,而以下三个则是以括号的内容相关)
·open是前缀括号;
·close是后缀括号;
·separator则是以什么分割;
注:为了防止报错,找不到集合名,建议使用注解加上(指定)集合名;
关系关联

  1. 首先需要配置好映射器;
    例如:

需要配置哪一张表,就映射哪一张表,这里使用角色表为例;
2. 然后再将表关联起来,而关联的语法写在主表之内;
例如:

 ·property 指向SysUserAssociation 中的 private SysRole role;
 ·javaType 指定property指定属性的类型
 ·column   指定关联的列名,sys_user表是通过 role_id 和sys_role表关联的

·select 指定查询关联的sys_role的sql语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值