1、mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"./mybatis-3-config.dtd">
<configuration>
<!-- properties配置文件中属性值,在整个配置文件中通过${}进行引用 -->
<properties>
<property name="driver" value="com.mysql.jdbc.Driver" />
</properties> <typeAliases>
<typeAlias type="com.wh.pojo.Emp" alias="Emp"/>
</typeAliases> <!-- 数据源环境信息配置 -->
<environments default="development2"> <environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- mysql数据源配置 -->
<property name="driver" value="${driver}" />
<property name="url" value="jdbc:mysql://localhost/ys" />
<property name="username" value="root" />
<property name="password" value="admin" />
</dataSource>
</environment> <environment id="development2">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- oracle数据源配置 -->
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<property name="username" value="scott" />
<property name="password" value="tiger" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/wh/mapper/DeptMapper.xml" />
<mapper resource="com/wh/mapper/EmpMapper.xml" />
</mappers> </configuration>

2、DeptMapper.java

package com.wh.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.wh.pojo.Dept;
import com.wh.vo.VO; public interface DeptMapper { public List<Dept> selectByName(String name); public List<Dept> selectByMore(@Param("dpt_name")String dpt_name,@Param("dpt_ioc")String dpt_ioc); public List<Dept> selectByList(@Param("ids") List<Integer> ids); public List<Dept> selectPage(VO vo);
}

3、DeptMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"./mybatis-3-mapper.dtd"> <!--namespace 绑定接口 -->
<mapper namespace="com.wh.mapper.DeptMapper">
<!-- DeptResultMap -->
<resultMap id="DeptResultMap" type="com.wh.pojo.Dept2">
<id property="did" column="dpt_id" />
<result property="dname" column="dpt_name" />
<result property="dioc" column="dpt_ioc" />
</resultMap> <!-- 模糊查询 -->
<select id="selectByName" parameterType="java.lang.String" resultType="com.wh.pojo.Dept">
<!-- select * from dept where dpt_name like concat('%',#{dpt_name},'%') -->
select * from dept where dpt_name like '%${value}%'
</select> <!-- 多重条件查询 接口要对形参注解 concat('%','销售','%') -->
<select id="selectByMore" resultType="com.wh.pojo.Dept">
select * from dept where 1=1
<if test="dpt_name!=null and dpt_name!='' ">
and dpt_name like concat('%',#{dpt_name,jdbcType=VARCHAR},'%')
</if>
<if test="dpt_ioc!=null and dpt_ioc!='' ">
and dpt_ioc like concat(concat('%',#{dpt_ioc,jdbcType=VARCHAR}),'%')
</if>
</select> <!-- 集合查询 in -->
<select id="selectByList" resultType="com.wh.pojo.Dept">
select * from dept where dpt_id in
<foreach collection="ids" index="index" open="(" separator="," close=")" item="id">
#{id}
</foreach>
</select> <!-- 分页查询 -->
<select id="selectPage" resultType="com.wh.pojo.Dept" parameterType="com.wh.vo.VO">
select * from dept limit #{pager.start},#{pager.pageSize}
</select>
</mapper>

4、DeptDaoImpl.java  

package com.wh.mapperImpl;

import java.util.List;

import com.wh.mapper.DeptMapper;
import com.wh.pojo.Dept;
import com.wh.vo.VO; public class DeptDaoImpl extends BaseDao implements DeptMapper { @Override
public List<Dept> selectByName(String name) {
this.openSession();
DeptMapper mapper=(DeptMapper) ss.getMapper(DeptMapper.class);
return mapper.selectByName(name);
} @Override
public List<Dept> selectByMore(String dpt_name, String dpt_ioc) {
this.openSession();
DeptMapper mapper=(DeptMapper) ss.getMapper(DeptMapper.class);
return mapper.selectByMore(dpt_name,dpt_ioc);
} @Override
public List<Dept> selectByList(List<Integer> ids) {
this.openSession();
DeptMapper mapper=(DeptMapper) ss.getMapper(DeptMapper.class);
return mapper.selectByList(ids);
} @Override
public List<Dept> selectPage(VO vo) {
this.openSession();
DeptMapper mapper=(DeptMapper) ss.getMapper(DeptMapper.class);
return mapper.selectPage(vo);
} }

5、Pager.java

package com.wh.common;

public class Pager {
private int recordCount ;//总记录数
private int pageSize = 3;//每页个数 自定义
private int pageCount ; //总页数
private int pageNum;//当前页数
private int start;//起始记录数
public Pager(int recordCount, int pageNum) {
super();
this.recordCount = recordCount;
this.pageNum = pageNum;
//总页数
if(recordCount % pageSize == 0){
pageCount = recordCount / pageSize;
}else{
pageCount = recordCount / pageSize + 1;
}
//当前页码处理
if(pageNum < 1){
pageNum = 1;
}
if(pageNum > pageCount){
pageNum = pageCount;
}
//起始位置 mysql起始位置要减去1
start = (pageNum - 1) * pageSize; }
public int getRecordCount() {
return recordCount;
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
}

6、Vo.java

package com.wh.vo;

import com.wh.common.Pager;

public class VO {

	private Pager pager;

	public VO(Pager pager) {
super();
this.pager = pager;
} public Pager getPager() {
return pager;
} public void setPager(Pager pager) {
this.pager = pager;
} }

TestDept.java

package com.wh.junit;
/**
* mybatis编写顺序
* DeptMapper.java、DeptMapper.xml、DeptDaoImpl.java、TestMyBatis.java
*/
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List; 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 org.junit.Test; import com.wh.common.Pager;
import com.wh.mapperImpl.DeptDaoImpl;
import com.wh.pojo.Dept;
import com.wh.vo.VO; public class TestDept { //mybatis快速入门
@Test
public void test00() throws IOException{
InputStream in = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(in);
SqlSession ss=ssf.openSession();
String string = ss.toString();
System.out.println(string);
} //mybatis快速入门 二
@Test
public void test01() throws IOException{
InputStream in = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(in);
SqlSession ss=ssf.openSession(); // String string = "com.wh.mapper.DeptMapper.selectById";
// Object selectOne = ss.selectOne(string,5);
// System.out.println(selectOne);
String string = "com.wh.mapper.DeptMapper.sAll";
Object select = ss.selectList(string);
System.out.println(select);
} //模糊查询
@Test
public void testselectByName() throws IOException{
DeptDaoImpl dao=new DeptDaoImpl();
List<Dept> list = dao.selectByName("销");
System.out.println(list);
} //多重条件查询
@Test
public void testSelectByMore() throws IOException{
DeptDaoImpl dao=new DeptDaoImpl();
List<Dept> list = dao.selectByMore("销","2");
System.out.println(list);
} //集合查询 in
@Test
public void testSelectByList() throws IOException{
DeptDaoImpl dao=new DeptDaoImpl();
List<Integer> ids=new ArrayList<Integer>();
ids.add(1);
ids.add(3);
List<Dept> list = dao.selectByList(ids);
System.out.println(list);
} //分页查询
@Test
public void testSelectPage() throws IOException{
DeptDaoImpl dao=new DeptDaoImpl();
List<Dept> list = dao.selectPage(new VO(new Pager(5,1)));
System.out.println(list);
}
}

BaseDao

package com.wh.mapperImpl;
/**
* 将mybatis中事务管理这一块,用单例模式实现
*/
import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class BaseDao { private static SqlSessionFactory ssf;
public SqlSession ss; static {
String resource = "mybatis.xml";
try {
// 读取配置文件
InputStream in = Resources.getResourceAsStream(resource);
// 创建连接工厂
ssf = new SqlSessionFactoryBuilder().build(in);
}
catch (IOException e) {
e.printStackTrace();
}
} // 获得连接
public SqlSession openSession() {
if (ss == null) {
// 事务自动提交,默认是false不自动提交 true自动提交
ss = ssf.openSession(true);
}
return ss;
} // 提交
public void commit() {
if (ss != null) {
ss.commit();
}
} // 回滚
public void rollback() {
if (ss != null) {
ss.rollback();
}
} // 关闭连接
public void close() {
if (ss != null) {
ss.close();
}
}
}

使用mysql实现mybatis的分页效果的更多相关文章

  1. spring boot+mybatis+mysql增删改查分页

    server: port: servlet: context-path: /springBootMybatis spring: datasource: name: test url: jdbc:mys ...

  2. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  3. Mybatis的分页插件PageHelper

    Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschina. ...

  4. 一步步学Mybatis-实现简单的分页效果逻辑 (5)

    在前四章中我们已经基本完成了对单表的CRUD与多表联合查询方式的Mybatis操作与配置方式,今天这里要讲的是关于一个业务问题中我们常碰到的分页问题.在开发web项目的时候我们经常会使用到列表显示,一 ...

  5. 【MyBatis】MyBatis之分页

    关于MyBatis的搭建可以参见“MyBatis的配置”,MyBatis是对JDBC底层代码的封装,关于Oracle.MySQL.SqlServer的分页可以查看Oracle.SqlServer.My ...

  6. mybatis结合分页的使用及解析.

    首先说明: 这里分页是使用了SSM框架+ jsp 来做的, 当然分页还有其他的很多做法, 比如easyUI自带的分页效果. 但是这些原理都是很相似的, 再次只做为学习总结之用. 一, 效果图这里的截图 ...

  7. Oracle、MySql、SQLServer 数据分页查询

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...

  8. Mybatis 的分页插件PageHelper-4.1.1的使用

    Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper  文档地址:http://git.oschin ...

  9. php+sqlserver实现分页效果

    找了一些实现的代码,都或多或少有点问题. 主要问题在于: 在进行一页数据查询时的sql语句格式问题, 开始尝试使用limit关键字查询,错误,limit用于mysql: 接着使用ROWNUM.row_ ...

随机推荐

  1. 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类

    有一个基于MIT License协议开源的PHP程序 http://code.google.com/p/php-mobile-detect/ 程序就是一个文件,下载之后直接引用就可以. 使用方法: & ...

  2. 汉诺塔 Tower of Hanoi

    假设柱子标为A,B.C.要由A搬至C,在仅仅有一个盘子时,就将它直接搬至C:当有两个盘子,就将B作为辅助柱.假设盘数超过2个.将第二个下面的盘子遮起来,就非常easy了.每次处理两个盘子,也就是:A- ...

  3. KindEditor使用过程中,用JQ提交表单时,获取不到编辑器的内容

    首先要说明的是.在使用提交button直接提交时.编辑器的内容是能够正常获取的,而使用 jq或js ,如$("#form").submit(),提交时,则编辑器的内容是无法获取的. ...

  4. sparse-PCA(稀疏主成分分析)是什么?

    不多说,直接上干货! 复杂降维技术有spare-PCA和sparse coding. 最近在科研需要,感谢下面的博主. Sparse PCA 稀疏主成分分析

  5. [转] 买彩票的利器--gun

    源链接 还在自己买彩票吗,有个现成的:GNU shuf命令. shuf -i - -n | 这样就会产生两组彩票(1~36个数字任选) 当然还可以派其他用途,比如: shuf -e clubs hea ...

  6. Tomcat9无法启动

    闲来无事,重新学习一下Java, 去Tomcat官网下载Tomcat,各种版本,7-8-9,果断下载最新的9,解压后,无需安装,到bin文件夹下启动, 结果总是一闪而过,百度: 1.查看8080是否占 ...

  7. 2015/12/29 eclipse 设置要点 空间 项目 类 eclipse汉化

    开始使用eclipse,双击eclipse.exe文件,启动eclipse.程序会显示一个工作空间的对话框,工作空间用来存放你的项目文件,你可以使用程序默认的,点击确定即可,你也可以重新选择一个文件夹 ...

  8. mongo12---手动预先分片

    手动预先分片:(每个片上的数据是不一样的,是分开存,不是做备份) 自动分片有可能短期内某个片的数据过大,硬盘不够用了.能否100000-30000就到1号片. //以shop.user表为例,先声明s ...

  9. “Invalid configuration file. File "I:/My Virtual Machines/Windows XP english Professional/Windows XP Professional.vmx" was created by a VMware product

    “Invalid configuration file. File "I:/My Virtual Machines/Windows XP english Professional/Windo ...

  10. Powershell 常见问题

    unapproved verbs WARNING: The names of some imported commands from the module 'todo' include unappro ...