MyBatis的parameterType属性以及分页的实现

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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值