MyBatis框架——MyBatis实现查询功能

2023-12-26 15:59:40

一、简单查询

查询数据中的一条数据或多条数据,返回,有两种实现方式:

第一种,用注解的方式实现,方法如下图:

第二种,用mapper的方式实现,方法如下图:

注意:使用mapper的方式实现查询功能时,一定要注意resultType的使用。

二、Mybatis查询时传递参数

Mybatis传递参数有两种方式:

${}:此方法的本质是字符串拼接

#{}:此方法的本质是占位字符串

1、传递单个参数

查询指定id的数据,如下图,下图中也可以替换成${id}

2、传递多个参数

查询tb_user表中id为1的数据,,表名和id值为传递的值,如下图:

注意:此时表名的传递不能用#{},要用${},因为表名位置要进行字符串拼接,而#{}占位符会出现语法问题

注意:在使用Mybatis框架,设计抽象方法时,如果参数的数量超过1个(有2个或更多),一定要为每一个参数都添加@Param注解,不然定义的参数名就不能按照实际意义来定义了,就得按照Mybatis参数传递的规则[arg1, arg0, param1, param2]来定义参数名了。

3.传递map类型参数

如下图:

4.传递实体类参数

如下图

注意:Mybatis执行时会自动读取参数User的属性填充到对应占位符#{},比如会读取User的username属性值填充到#{username}的位置,按照这个规则执行SQL就可以将User对象周玲的数据存储到数据库中。

总结:

使用#{}格式的占位符时,mybatis在处理过程中是使用了预编译的做法,这种处理方式是安全的,而${}占位符是先拼接SQL语句再执行的过程,没有预编译的处理,所以存在SQL注入的风险。

在实际开发过程中推荐使用#{}格式的占位符来实现功能。

文章来源:https://blog.csdn.net/dazhanglao/article/details/134577565
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。