<select id="selectMultiParam" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where name=#{personName} or age
=#{personAge}</select>
测试方法:
@TestpublicvoidtestSelectMultiParam(){
List<Student> stuList = studentDao.selectMultiParam(" 李力",20);
stuList.forEach( stu -> System.out.println(stu));}
package com.bjpowernode.vo;publicclassQueryParam{private String queryName;privateint queryAge;//set , get 方法}
接口方法:
List<Student>selectMultiObject(QueryParam queryParam);
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>
List<Student>selectByNameAndAge(String name,int age);
mapper 文件
<select id="selectByNameAndAge" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where name=#{arg0} or age =#{arg1}</select>
测试方法:
@TestpublicvoidtestSelectByNameAndAge(){// 按位置参数
List<Student> stuList = studentDao.selectByNameAndAge("李力",20);
stuList.forEach( stu -> System.out.println(stu));}
<select id="selectMultiMap" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where name=#{myname} or age =#{myage}</select>
测试方法:
@TestpublicvoidtestSelectMultiMap(){
Map<String,Object> data =newHashMap<>();
data.put("myname"," 李力");// #{myname}
data.put("myage",20);// #{myage}
List<Student> stuList = studentDao.selectMultiMap(data);
stuList.forEach( stu -> System.out.println(stu));}
<select id="selectById" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where id=#{studentId}</select>
转为 MyBatis 的执行是:
String sql="select id,name,email,age from student where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,1005);
解释:
where id=? 就是 where id=#{studentId} ps.setInt(1,1005) , 1005 会替换掉 #{studentId}
4.2、$
$ 字符串替换, ,告诉 mybatis 使用
包
含
的
“
字
符
串
”
替
换
所
在
位
置
。
使
用
S
t
a
t
e
m
e
n
t
把
s
q
l
语
句
和
包含的“字符串”替换所在位置。使用 Statement 把 sql 语句和
包含的“字符串”替换所在位置。使用Statement把sql语句和{}的内容连接起来。主要用在替换表名,列名,不同列排序等操作。
<select id="findById" resultType="com.bjpowernode.domain.Student">
select * from student where id=#{studentId}</select><select id="findByEmail" resultType="com.bjpowernode.domain.Student">
select * from student where email=#{stuentEmail}</select>