1.在映射文件中的select等标签中,parameterType属性可控制参数类型(int,String......)
<select id="test" resultType="com.bjsxt.pojo.People" parameterType="int">
2. SqlSession 的 selectList()和 selectOne()的第二个参数和 selectMap() 的第三个参数都表示方法的参数.
People p = session.selectOne("a.b.selById",1);
System.out.println(p);
2.2 在 Mapper.xml 中可以通过#{}获取参数
2.2.1 parameterType 控制参数类型
2.2.2 #{}获取参数内容
2.2.2.1 使用索引,从 0 开始 #{0}表示第一个参数
2.2.2.2 也可以使用#{param1}第一个参数
2.2.2.3 如果只有一个参数(基本数据类型或 String),mybatis对#{}里面内容没有要求只要写内容即可.
2.2.2.4 如果参数是对象#{属性名}
2.2.2.5 如果参数是 map 写成#{key}
3. #{} 和 ${} 的区别
3.1 #{} 获取参数的内容支持 索引获取,param1 获取指定位置参数,并且 SQL 使用?占位符
3.2 ${} 字符串拼接不使用?,默认找${内容}内容的 get/set 方法,如果写数字,就是一个数字
4. 如果在 xml 文件中出现 “<” ">" ,双引号 等特殊字符时可以使用 XML 文件转义标签(XML 自身的)
<![CDATA[ 内容 ]]>
<select id="test" resultType="com.bjsxt.pojo.People" parameterType="int">
<![CDATA[ select * from people where id<#{0} ]]>
</select>
5. mybatis 中实现 mysql 分页写法
5.1 ?不允许在关键字前后进行数学运算,需要在代码中计算完成 后传递到 mapper.xml 中
5.2 在 java 代码中计算
//显示几个
int pageSize = 2;
//第几页
int pageNumber = 2;
//如果希望传递多个参数,可以使用对象或 map
Map<String,Object> map = new HashMap<>();
map.put("pageSize", pageSize);
map.put("pageStart", pageSize*(pageNumber-1));
List<People> p = session.selectList("a.b.page",map);
5.3 在 mapper.xml 中代码
<select id="page" resultType="com.bjsxt.pojo.People" parameterType="map">
select * from people limit #{pageStart},#{pageSize}
</select>