mybatis分页的实现(mysql)

来源:互联网 发布:自定义端口号范围 编辑:程序博客网 时间:2024/06/05 20:14

初学mybatis分页查询;包括无条件分页和有条件分页

Student.java

package cn.buaa.mybatis.app3;public class Student {private Integer id;private String name;private Double sal;public Student(Integer id, String name, Double sal) {super();this.id = id;this.name = name;this.sal = sal;}public Student() {super();}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getSal() {return sal;}public void setSal(Double sal) {this.sal = sal;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", sal=" + sal + "]";}}
StudentDao.java

package cn.buaa.mybatis.app3;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import org.apache.ibatis.session.SqlSession;import cn.buaa.mybatis.util.MybatisUtil;/** * 持久层 *  * @author 梧桐下的茵 *  */public class StudentDao {/** * 增加学生 */public void add(Student student) throws Exception {SqlSession sqlSession = null;try {sqlSession = MybatisUtil.getSqlSession();sqlSession.insert(Student.class.getName() + ".add", student);// 事物提交sqlSession.commit();} catch (Exception e) {e.printStackTrace();sqlSession.rollback();throw e;} finally {MybatisUtil.closeSqlSession();}}/** * 无条件分页 */public List<Student> findAllWithFy(int start,int size) throws Exception {SqlSession sqlSession = null;try {sqlSession = MybatisUtil.getSqlSession();Map<String,Object> map = new LinkedHashMap<String,Object>();map.put("pstart", start);map.put("psize", size);List<Student> studentList = sqlSession.selectList(Student.class.getName() + ".findAllWithFy", map);return studentList;} catch (Exception e) {e.printStackTrace();throw e;} finally {MybatisUtil.closeSqlSession();}}/** * 有条件分页 */public List<Student> findAllByNameWithFy(String name,int start,int size) throws Exception {SqlSession sqlSession = null;try {sqlSession = MybatisUtil.getSqlSession();Map<String,Object> map = new LinkedHashMap<String,Object>();map.put("pname", "%"+name+"%");map.put("pstart", start);map.put("psize", size);List<Student> studentList = sqlSession.selectList(Student.class.getName() + ".findAllByNameWithFy", map);return studentList;} catch (Exception e) {e.printStackTrace();throw e;} finally {MybatisUtil.closeSqlSession();}}// 测试public static void main(String[] args) throws Exception {StudentDao dao = new StudentDao();/*for (int i = 1; i < 11; i++) {dao.add(new Student(i, "呵呵", 7000D));}*/System.out.println("---------------第一页--------------");List<Student> studentList = dao.findAllByNameWithFy("呵",0, 3);for(Student student :studentList){System.out.println(student.toString());}System.out.println("---------------第二页--------------");List<Student> studentList2 = dao.findAllByNameWithFy("呵",3, 3);for(Student student :studentList2){System.out.println(student.toString());}System.out.println("---------------第三页--------------");List<Student> studentList3= dao.findAllByNameWithFy("呵",6, 3);for(Student student :studentList3){System.out.println(student.toString());}System.out.println("---------------第四页--------------");List<Student> studentList4= dao.findAllByNameWithFy("呵",9, 3);for(Student student :studentList4){System.out.println(student.toString());}}}
studentMapper.xml

<?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="cn.buaa.mybatis.app3.Student">         <resultMap type="cn.buaa.mybatis.app3.Student" id="studentMap">        <id property="id" column="t_id"/>        <result property="name" column="t_name"/>        <result property="sal" column="t_sal"/>    </resultMap>            <insert id="add" parameterType="cn.buaa.mybatis.app3.Student" >                insert into students (t_id,t_name,t_sal) values(#{id},#{name},#{sal})       </insert>              <!--   无条件查询-->       <select id="findAllWithFy" parameterType="map" resultMap="studentMap">                select t_id,t_name,t_sal from students                limit #{pstart},#{psize}       </select>             <!--   有条件查询-->       <select id="findAllByNameWithFy" parameterType="map" resultMap="studentMap">                select t_id,t_name,t_sal from students                where t_name like #{pname}                limit #{pstart},#{psize}       </select></mapper>

mybatis.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>        <!-- 加载类路径下的属性文件 -->        <properties resource="db.properties"/>        <!-- 设置类型别名 -->        <typeAliases >                <typeAlias type="cn.buaa.mybatis.app1.Student" alias="student"/>        </typeAliases>        <!--   设置默认的连接环境信息 -->        <environments default="mysql_developer">               <!--    连接环境信息  ,随便起一个唯一的名字 -->                <environment id="mysql_developer">                        <!--   mybatis使用jdbc事物管理方式 -->                        <transactionManager type="jdbc"></transactionManager>                        <!--     mybatis使用连接池方式来获取连接 -->                        <dataSource type="pooled">                                <property name="driver" value="com.mysql.jdbc.Driver"/>                                <property name="url" value="jdbc:mysql://localhost:3306/emp"/>                                <property name="username" value="root"/>                                <property name="password" value="123456"/>                        </dataSource>                </environment>                                <!--    连接环境信息  ,随便起一个唯一的名字 -->                <environment id="oracle_developer">                        <!--   mybatis使用jdbc事物管理方式 -->                        <transactionManager type="jdbc"></transactionManager>                        <!--     mybatis使用连接池方式来获取连接 -->                        <dataSource type="pooled">                                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>                                <property name="url" value="jdbc:oracle:thin:@localhost:1521/orcl"/>                                <property name="username" value="zhangdong"/>                                <property name="password" value="123456"/>                        </dataSource>                </environment>        </environments>        <!--    加载映射文件-->        <mappers>                <mapper resource="cn/buaa/mybatis/app1/studentMapper.xml"/>                <mapper resource="cn/buaa/mybatis/app2/studentMapper.xml"/>                <mapper resource="cn/buaa/mybatis/app3/studentMapper.xml"/>        </mappers></configuration>

db.properties

mysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://127.0.0.1:3306/empmysql.username=rootmysql.password=123456oracle.driver=oracle.jdbc.driver.OracleDriveroracle.url=jdbc:oracle:thin:@127.0.0.1:1521:orcloracle.username=rootoracle.password=123456




0 0
原创粉丝点击