MyBatis框架(6.0)

MyBatis框架(6.0)

数据分页查询

在这里插入图片描述
·以内容替换的方式设置的参数:${替换变量};
·传递的是操作的数值:#{内容}。

SELECT * FROM WHERE 字段 LIKE ? LIMIT ?,?;
SELECT * FROM WHERE ${ } LIKE #{ } LIMIT #{ },#{ };

通过Mybatis进行该操作,那么就可以接受这样的一组数据,使用map集合完成。

范例:实现分页查询

1,配置文件编写New.xml

	<!-- Map集合的特点是根据key取得对应的value数据,Mybatis里面如果发现有多个参数就传递Map -->
	<select id="findAllSplit" resultMap="NewsResultMap" parameterType="java.util.Map">
		SELECT nid,title,pub_date FROM news
		WHERE ${column} LIKE #{keyWord} LIMIT #{start},#{lineSize} ;
	</select>

2,编写测试文件:

package cn.mldn.test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.mldn.util.MyBatisSessionFactory;
import cn.mldn.vo.News;
public class TestNewsFindSplit {
	public static void main(String[] args) throws Exception {
		String column = "title";
		String keyWord = "%%";
		int currentPage = 1;
		int lineSize = 5;
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("column", column);
		map.put("keyWord", keyWord);
		map.put("start", (currentPage - 1) * lineSize);
		map.put("lineSize", lineSize);
		List<News> all = MyBatisSessionFactory.getSession().selectList(
				"cn.mldn.mapping.NewsNS.findAllSplit", map); // 没有强制转换
		System.out.println(all);
		MyBatisSessionFactory.close();
	}
}

实现正常的分页处理,还需要统计出相应的数据行数;

范例:统计数据行数

1,配置文件编写New.xml

<select id="getAllCountSplit" parameterType="java.util.Map" resultType="int">
		SELECT COUNT(*) FROM news WHERE ${column} LIKE #{keyWord} ;
</select>

2,编写测试文件:

package cn.mldn.test;
import java.util.HashMap;
import java.util.Map;
import cn.mldn.util.MyBatisSessionFactory;
public class TestNewsGetSplitCount {
	public static void main(String[] args) throws Exception {
		String column = "title";
		String keyWord = "%%";
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("column", column);
		map.put("keyWord", keyWord);
		int count = MyBatisSessionFactory.getSession().selectOne(
				"cn.mldn.mapping.NewsNS.getAllCountSplit", map); // 没有强制转换
		System.out.println(count);
		MyBatisSessionFactory.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">
<!-- 设置命名空间,可以与不同表的同类型操作进行区分,使用时以“空间名称.id”的方式调用 -->
<mapper namespace="cn.mldn.mapping.NewsNS"> 
	<!-- 结果转换映射,一般都会在查询的时候使用 -->
	<resultMap type="News" id="NewsResultMap">
		<id property="nid" column="nid"/>
		<result property="title" column="title"/>
		<result property="pubdate" column="pub_date"/>
	</resultMap>
	<!-- Map集合的特点是根据key取得对应的value数据,Mybatis里面如果发现有多个参数就传递Map -->
	<select id="findAllSplit" resultMap="NewsResultMap" parameterType="java.util.Map">
		SELECT nid,title,pub_date FROM news
		WHERE ${column} LIKE #{keyWord} LIMIT #{start},#{lineSize} ;
	</select>
	
	<select id="getAllCountSplit" parameterType="java.util.Map" resultType="int">
		SELECT COUNT(*) FROM news WHERE ${column} LIKE #{keyWord} ;
	</select>
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值