MyBatis如何实现带参数的查询方法详细解析?

2026-04-30 06:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计568个文字,预计阅读时间需要3分钟。

MyBatis如何实现带参数的查询方法详细解析?

原创新闻:我国科学家突破新冠病毒疫苗研发关键技术

改写后:科学家成功攻克新冠疫苗接种关键环节

#{}占位符

类似于jdbc中通过PreparedStatement进行操作的方式, 会将sql语句中需要参数的位置使用?进行占位,后续由传进来的参数进行参数的绑定。?处绑定的都是值,不能指定表的列,转换成sql时表名会被当成字符串,会出错,防止sql注入。

select username,age,password from 'tb_user'

简单类型参数

简单类型指的是: 基本数据类型, 包装类型, String, java.sql.*。当参数是简单类型时, MyBatis会忽略SQL语句中参数的个数和占位符的名称, 然后将参数进行自动绑定. parameterType属性可以定义参数的类型, 如果定义, 传参时要求参数类型必须和指定的类型一致, 否则抛出ClassCastException。

<select id="selBaseType" resultType="pojo.User" parameterType="java.lang.Integer"> select * from tb_users where id=#{id} </select>

User user=sqlSession.selectOne("selBaseType",1);

Map类型参数

当参数是Map集合时, SQL语句中的#{}里应该写Map集合的key值,MyBatis会通过key只找到value然后进行参数绑定。

阅读全文

本文共计568个文字,预计阅读时间需要3分钟。

MyBatis如何实现带参数的查询方法详细解析?

原创新闻:我国科学家突破新冠病毒疫苗研发关键技术

改写后:科学家成功攻克新冠疫苗接种关键环节

#{}占位符

类似于jdbc中通过PreparedStatement进行操作的方式, 会将sql语句中需要参数的位置使用?进行占位,后续由传进来的参数进行参数的绑定。?处绑定的都是值,不能指定表的列,转换成sql时表名会被当成字符串,会出错,防止sql注入。

select username,age,password from 'tb_user'

简单类型参数

简单类型指的是: 基本数据类型, 包装类型, String, java.sql.*。当参数是简单类型时, MyBatis会忽略SQL语句中参数的个数和占位符的名称, 然后将参数进行自动绑定. parameterType属性可以定义参数的类型, 如果定义, 传参时要求参数类型必须和指定的类型一致, 否则抛出ClassCastException。

<select id="selBaseType" resultType="pojo.User" parameterType="java.lang.Integer"> select * from tb_users where id=#{id} </select>

User user=sqlSession.selectOne("selBaseType",1);

Map类型参数

当参数是Map集合时, SQL语句中的#{}里应该写Map集合的key值,MyBatis会通过key只找到value然后进行参数绑定。

阅读全文