Mybatis学习-参数学习

parameterType: 接口中方法参数的类型,
类型的完全限定名或别名。这个属性是可选的,因为 MyBatis 北京动力节点 www.bjpowernode.com
可以推断出具体传入语句的参数,默认值为未设置(unset)。接口中方法的参数从 java 代码传入到
mapper 文件的 sql 语句。
int 或 java.lang.Integer
hashmap 或 java.util.HashMap
list 或 java.util.ArrayList
student 或 com.domain.Student
<select>,<insert>,<update>,<delete>都可以使用 parameterType 指定类型。
例如:
<delete id="deleteStudent" parameterType="int">
 delete from student where id=#{studentId}
</delete>
等同于
<delete id="deleteStudent" parameterType="java.lang.Integer">
 delete from student where id=#{studentId}
</delete>
Dao 接口中方法的参数只有一个简单类型(java 基本类型和 String),占位符 #{ 任意字符 },和方
法的参数名无关。
mapper 文件:
<select id="selectById" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student where id=#{studentId}
</select>
#{studentId} , studentId 是自定义的变量名称,和方法参数名无关。
多个参数-使用@Param
当 Dao 接口方法多个参数,需要通过名称使用参数。
在方法形参前面加入@Param(“自定义参数名”),
mapper 文件使用#{自定义参数名}。
mapper 文件:
<select id="selectMultiParam" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student where name=#{personName} or age 
=#{personAge}
</select>
多个参数-使用对象
使用 java 对象传递参数, java 的属性值就是 sql 需要的参数值。 每一个属性就是一个参数。
语法格式: #{ property,javaType=java 中数据类型名,jdbcType=数据类型名称 }
javaType, jdbcType 的类型 MyBatis 可以检测出来,一般不需要设置。常用格式 #{ property }
 
mapper 文件:
<select id="selectMultiObject" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student where name=#{queryName} or age 
=#{queryAge}
</select> 或<select id="selectMultiObject" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student
 where name=#{queryName,javaType=string,jdbcType=VARCHAR}
 or age =#{queryAge,javaType=int,jdbcType=INTEGER}
</select>
多个参数-按位置
参数位置从 0 开始, 引用参数语法 #{ arg 位置 } , 第一个参数是#{arg0}, 第二个是#{arg1}
注意:mybatis-3.3 版本和之前的版本使用#{0},#{1}方式, 从 mybatis3.4 开始使用#{arg0}方式。
mapper 文件
<select id="selectByNameAndAge" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student where name=#{arg0} or age =#{arg1}
</select>
多个参数-使用 Map
Map 集合可以存储多个值,使用Map向 mapper 文件一次传入多个参数。Map 集合使用 String的 key,
Object 类型的值存储参数。 mapper 文件使用 # { key } 引用参数值。
mapper 文件:
<select id="selectMultiMap" resultType="com.bjpowernode.domain.Student">
 select id,name,email,age from student where name=#{myname} or age =#{myage}
</select>

 

posted @ 2021-09-17 11:19  好吗,好  阅读(101)  评论(0)    收藏  举报