mybatis的mapper.xml中select标签中的parameterType属性

SqlSession的selectList()与selcetOne()的第二个参数和selectMap()的第三个参数都表示方法的参数

代码如下

Flower flower = session.selectOne("com.leesun.mapper.FlowerMapper.selById",1);
System.out.println(flower);

mapper.xml文件配置如下



	
	
		select * from flower where id=${id}	
	

而结果变为:

DEBUG 2018-09-18 07:10:36 第139行 ==>  Preparing: select * from flower where id=1  
DEBUG 2018-09-18 07:10:36 第139行 ==> Parameters:  
DEBUG 2018-09-18 07:10:37 第139行 <==      Total: 1 
id:1 name:樱花 price:2.5 production:武汉

可以看到${}是直接从对象flower中提取{}内的id参数(id参数要有get方法)

总结#{} 和${}的区别

#{} 获取参数的内容支持 索引获取,param1 获取指定位置参数, 并且 SQL 使用?占位符,若传入 doller符{} 默认找doller符{内容},内容的 get/set 方法

当需要传入多个参数时

Map map = new HashMap<>();
map.put("id", 1);			
map.put("id2", 2);
List list = session.selectList("com.leesun.mapper.FlowerMapper.selById2",map);

xml代码如下


	

结果如下

DEBUG 2018-09-18 07:26:02 第139行 ==>  Preparing: select * from flower where id=? or id=?  
DEBUG 2018-09-18 07:26:02 第139行 ==> Parameters: 1(Integer), 2(Integer) 
DEBUG 2018-09-18 07:26:02 第139行 <==      Total: 2 
[id:1 name:樱花 price:2.5 production:武汉, id:2 name:荷花 price:3.4 production:济南]

当然,如果改成${}也可以,结果相同,输出格式变为:

DEBUG 2018-09-18 07:28:46 第139行 ==>  Preparing: select * from flower where id=1 or id=2 

你可能感兴趣的:(mybatis)