mybatis中实现mysql分页以及别名
?不允许在关键字前后进行数学运算,需要在代码中计算完成后传递到mapper.xml中
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.List;
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);
int pageSize = 2;
int pageNumber =3;
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);
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>-->
<select id="page" resultType="com.ning.pojo.People" parameterType="map">
select * from people limit #{pageStart},#{pageSize}
</select>
</mapper>
可以起别名
在mybatis.xml中配置
后,在mapper.xml中的resultType属性就可以返回的是别名
<typeAliases>
<typeAlias type="com.ning.pojo.People" alias="people"/>
</typeAliases>
给某个包下起别名
<typeAliases>
<!--<typeAlias type="com.ning.pojo.People" alias="people"/>-->
<package name="com.ning.pojo"/>
</typeAliases>