mybatis&mybatis-plus的sql语句

在springboot项目中,我们会使用到sql语句,要么是使用mybatis-plus底层已经写好的,要么是使用mybatis,来编写对应的sql映射文件.

注意:在springboot中,只需要导入mybatis-plus就可以二者都拥有了

 

今天介绍mybatis中的sql映射文件

1.一个xxxmapper接口对应一个xxxmapper.xml映射文件,这个文件需要在springboot的配置文件中去配置

下面配置了命名空间,路径,表名前缀及id的类型

 

 

 sql映射文件的输入,输出类型

我们在数据库执行增删改查操作时,不同的操作返回不同的数据类型

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 以上是在数据库执行的增删改查语句,由上图我们可以看到,增删改是不返回数据的,只有查询,无论它是值还是没有值,它都会返回,所以,在我们的映射文件语句中,凡是执行select语句,都要有输入(parameterType),输出数据(resultType或者resultMap),不然就会报错

 

 

 

parameterType输入类型

1.输入简单数据类型

1.1使用#{}占位符,里面传入前端传来的数据,有效的防止了之前由于?带来的sql注入问题,

1.2${}做拼接,在使用like关键字的时候,使用${}拼接,不需要在传参的时候手动加入%%,而使用#{}的话,需要手动添加%%进行传参.

 

2.输入对象

3.输入一个包装类的对象(一个类包含另一个类的属性)

在一个实体类中,添加另一个实体类(例如写法:private User user;)

 

resultType输出类型

1.返回一个简单类型

2.返回对象(单个,多个都可以)

前提条件:列名必须与属性名一致,其中有一个相同就会创建对象,没有相同的,则不创建对象

 

resultMap输出类型

1.解决resultType出现的问题:属性名与列名不一致

<result column="字段" property="属性名">

2.对象中包含了另外一个对象(一对一,一对多,多对多关联关系),使用resultType进行映射 .

一对一(两个表):添加关联属性

使用association标签输出关联的单个对象的信息,id作为主键映射

一对多(两个以上表):使用集合,new一个Arraylist包含对象的属性

多对多:使用多个association映射

 

善于where 1=1恒等关系,在多条件拼接时

SELECT a.id,a.title,u.nick_name,a.comment_count,a.update_time,a.firstImg, 0 as type
FROM tb_article a,tb_user u
WHERE 1=1 AND a.user_id = u.id AND a.title like ${key}
ORDER BY hot ASC limit 0,10

为了避免where后面第一个词就是and,而导致的语法错误

 

posted @   Tmillion  阅读(696)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示