MybaitsPageHelper

         MybatisPageHelper

所需jar

pageHelper.jar

jsqlparser.jar

配置生成文件

需要 mybatis-generator-core-1.3.5.jar

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE
generatorConfiguration PUBLIC
       
"-//mybatis.org//DTD MyBatisGenerator Configuration 1.0//EN"
       "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"
>
<generatorConfiguration>
   
<!--数据库驱动-->
   
<classPathEntry location="E:\javacode\Projects\Spring\File\web\lib\ojdbc8.jar"/>

    <context
id="context" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <property
name="suppressAllComments"value="false"/>
            <property
name="suppressDate"value="true"/>
        </commentGenerator>
       
<!--数据库连接信息-->
       
<jdbcConnection userId="用户名 " password="密码 "
                       
driverClass="oracle.jdbc.driver.OracleDriver"
                       
connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <javaTypeResolver>
            <property
name="forceBigDecimals"value="false"/>
        </javaTypeResolver>
       
<!--生成的实体类-->
       
<javaModelGenerator targetPackage="com.cn.mybatis.entity"targetProject=".">
            <property
name="enableSubPackages"value="false"/>
            <property
name="trimStrings"value="true"/>
        </javaModelGenerator>
       
<!--Mapper.xml-->
       
<sqlMapGenerator targetPackage="mapper"targetProject=".">
            <property
name="enableSubPackages"value="false"/>
        </sqlMapGenerator>
       
<!--Dao-->
       
<javaClientGenerator targetPackage="com.cn.mybatis.dao"type="XMLMAPPER"targetProject=".">
            <property
name="enableSubPackages"value="false"/>
        </javaClientGenerator>
       
<!--选定表 schema用户名 tableName domainObjectName实体类名称 mapperName接口名称 -->
       
<table schema="" tableName=""enableCountByExample="false"enableDeleteByExample="false"
              
enableSelectByExample="false"enableUpdateByExample="false"domainObjectName="Grade"
              
mapperName="GradeDao"/>
    </context>
</generatorConfiguration>

 

Mybatis配置

实体类

使用lombok.jar@Data提供getter,setter,toString,equals

package com.cn.mybatis.entity;


import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
@Data
public class Student implements Serializable {
   
private String id;
    private Stringname;
    private int age;
    private Stringaddress;
    private Stringsex;
    private LocalDatebirthday;
    private LocalDateregDate;
    private StringgradeId;
   
}

接口

public interface StuDao {
    int totalCount(Student stu);

   
List<StuDao> queryStu(PageInfo pageInfo);
}

stuDao.xml

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE
mapper PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace="com.cn.mybatis.dao.StuDao">

    <select
id="queryStu" resultType="Student"parameterType="com.github.pagehelper.PageInfo">
       
selectID,NAME from STUDENT
       
<where>
         
条件
        </where>
    </select>
    <select
id="totalCount" resultType="Integer" parameterType="Student">
       
selectcount(1)from student
       
<where>
          
条件
        </where>
    </select>
</mapper>

 

DB.properties

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.user=用户名
jdbc.pwd=密码
jdbc.initialSize = 10

mybatis-config,xml

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE
configuration PUBLIC "-//mybatis.org//DTD Config3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <properties
resource="DB.properties"/>
    <settings>
       
<!--日志-->
       
<setting name="logImpl" value="STDOUT_LOGGING"/>
       
<!--关闭缓存开关-->
       
<setting name="cacheEnabled" value="false"/>
       
<!--设置超时时间,它决定驱动等待数据库响应的秒数-->
       
<setting name="defaultStatementTimeout" value="5"/>
       
<!--是否开启自动驼峰命名规则
       
即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 -->
       
<setting name="mapUnderscoreToCamelCase" value="true"/>
       
<!--允许 JDBC 支持自动生成主键-->
       
<setting name="useGeneratedKeys" value="true"/>
    </settings>
    <typeAliases>
        <typeAlias
alias="Student" type="com.cn.mybatis.entity.Student"/>
    </typeAliases>

    <plugins>
        <plugin
interceptor="com.github.pagehelper.PageInterceptor">
           
<!--自动识别使用数据库-->
           
<property name="autoRuntimeDialect" value="true"/>
           
<!--&lt;!&ndash;配置使用的数据库&ndash;&gt;-->
            <!--<propertyname="helperDialect" value="oracle"/>-->
            <!--
使用页码进行分页需要传入beginRowendRow-->
           
<property name="offsetAsPageNum" value="true"/>
           
<!--使用总行数-->
           
<property name="rowBoundWithCount" value="true"/>
           
<!--使用页码为0查询所有-->
           
<property name="pageSizeZero" value="true"/>
           
<!--查询<=0页为第一页,大于总页数为最后一页-->
           
<property name="reasonable" value="true"/>
           
<!--重新定义参数即提供的pageInfo类的属性-->
           
<property name="params" value="pageNum=currentPage"/>
           
<!--使用完自动释放调用closeConn-->
       
</plugin>
    </plugins>

    <environments
default="development">
        <environment
id="development">
            <transactionManager
type="JDBC"/>
            <dataSource
type="POOLED">
                <property
name="driver" value="${jdbc.driver}"/>
                <property
name="url" value="${jdbc.url}"/>
                <property
name="username" value="${jdbc.user}"/>
                <property
name="password" value="${jdbc.pwd}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper
resource="mapper/StuDao.xml"/>
    </mappers>


</configuration>

 

Test类

package com.cn.mybatis;

import
com.cn.mybatis.dao.StuDao;
import
com.cn.mybatis.entity.Student;
import
com.github.pagehelper.Page;
import
com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo;
import
lombok.Cleanup;
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;

public class
test {
    privatestatic SqlSessionFactory sqlFactory;

    static
{
        try {
            //lombok提供即finally{inputStream.close()}
           
@Cleanup
           
//将配置文件以流的方式转换
                   
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
           
//将配置文件以流的方式读取
           
sqlFactory = new SqlSessionFactoryBuilder().build(inputStream);
       
} catch(IOException e) {
            e.printStackTrace();
       
}
    }

    publicstatic void main(String[] args) {

        try {
//            获取sqlSession执行sql
           
final SqlSession sqlSession = sqlFactory.openSession();
            final
StuDao stuDao =sqlSession.getMapper(StuDao.class);
//参数的传递stu需要进行setter
           
Studentstu = new Student();
//           pageHelper.jar提供
           
PageInfopage = new PageInfo();
//           总行数
           
final int count =stuDao.totalCount(stu);
//           显示3
           
int displayRows = 3;
//           总页数
           
page.setPageSize((int) Math.ceil(count / (displayRows * 1.0)));
//           2
           
page.setPageNum(2);
//           获取分页
           
final Page<Object> objects= PageHelper.startPage(page.getPageNum(), page.getPageSize());
//           进行拦截sql由分页插件管理即需要查询的sql(必须和starPage相邻)
           
stuDao.queryStu(page);
           
//遍历
           
objects.forEach(System.out::println);
       
} catch(Exception e) {
            e.printStackTrace();
       
}

    }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值