mybatis中parameterType属性
此属性控制参数类型,在SqlSession的selectList()和selectOne()的第二个参数和selectMap()的第三个参数都表示方法的参数
<select id="selById" resultType="com.ning.pojo.People" parameterType="int">
select * from people where id=#{0}
</select>
People people = session.selectOne("a.b.selById",1);
System.out.println(people);
在mapper.xml中可以通过#{}来获取参数
parameterType控制参数类型,#{}获取参数内容,使用索引,从0开始,,#{0}表示第一个参数,也可以使用#{param1} 第一个参数,如果只有一个参数(基本数据类型或String),mybatis对#{}里面的内容没有要求,只要写内容即可,如果参数是对象#{属性名}
#{}和KaTeX parse error: Expected 'EOF', got '#' at position 9: {}之间的区别 #̲{}获取参数的内容支持索引获取…{} 字符串拼接,不使用?,默认找${内容}内容的get,set方法,如果写数字就是一个数字
package com.ning.test;
import com.ning.pojo.People;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
// session.selectList("a.b.c");
// session.selectList("a.b.d");
// session.selectList("a.j.b");
// session.selectList("a.j.c");
// People people1 = new People();
// people1.setId(1);
// People people = session.selectOne("a.b.selById",people1);
// People people = session.selectOne("a.b.selById",0);
// System.out.println(people);
//如果希望传递多个参数,可以使用对象或者Map
Map<String,Object> map = new HashMap<>();
map.put("id",1);
map.put("name","张三");
People p = session.selectOne("a.b.selById", map);
System.out.println(p);
session.close();
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="a.b">
<!--<select id="c" resultType="com.ning.pojo.People">-->
<!--select * from people-->
<!--</select>-->
<!--<select id="d" resultType="com.ning.pojo.People">-->
<!--select * from people where id=1 or id=2-->
<!--</select>-->
<select id="selById" resultType="com.ning.pojo.People" parameterType="map">
select * from people where id=#{id} and name=#{name}
</select>
</mapper>