使用mybatis 链接oracle 设置数据分页

使用mybatis 链接oracle 设置数据分页;


1.oracle数据驱动包:
//本地驱动包依赖配置;
<dependency>
            <groupId>com.oracle</groupId>
            <artifactId>jdbc6</artifactId>
            <version>11.2.0.1.0</version>
<!-- 此配置路径,在d:盘下的lib目录中有ojdbc6.jar驱动包 -->
            <!--<systemPath>d:/lib/ojdbc6.jar</systemPath>-->


<!-- 此配置路径,在项目根目录中的src/lib目录有jdbc6.jar驱动包 -->
            <systemPath>${basedir}/src/lib/jdbc6.jar</systemPath>


            <scope>system</scope>
        </dependency>


2,链接oracle 数据库:
resources目录中:
db.properties文件加;
db.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@localhost:1521:FZ
db.username=system
db.password=fz

3.实体类;
@Data
public class Student {
    private int id;
    private String name;
    private BigDecimal money;
}


4.mapper 中设置: 
public interface StudentMapper {
    @Insert("insert into student values(stuid.nextval,#{name},#{money})")
    public int add(@Param("name") String name, @Param("money")BigDecimal money);

    public Student queryById(int id);

    @Select("select * from student")
    public List<Student> query();

    @Select("select * from student")
    public List<Student> page(RowBounds r); 
    public List<Student> pages(@Param("start") int start,@Param("end") int end);
}
XX.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="com.fz.mapper.StudentMapper">

    <select id="queryById" parameterType="int" resultType="student" statementType="PREPARED">
        select * from student where id=#{id}
    </select>

    <select id="asaff" resultType="student" statementType="PREPARED">
        <![CDATA[
            select id,name,money from (select rownum n,student.* from student where rownum <= #{start}) where n># {end}
        ]]>
    </select>

    <select id="pages" resultType="student" statementType="PREPARED">
        <![CDATA[
            select id,name,money from (select rownum n,student.* from student where rownum <= #{start}*#{end}) where n>#{end}*#{start}-#{end}
        ]]>
    </select>
</mapper>

5.测试:
@Before  和 @After 略;

@Test
    public void jdbc() throws SQLException {
        Connection conn = this.session.getConnection();
        PreparedStatement pst = conn.prepareStatement("delete from student");
        pst.execute();
        pst.close();
        conn.commit();
        conn.close();
    }


    @Test
    public void add(){
        StudentMapper sdao = this.session.getMapper(StudentMapper.class);
        sdao.add("李四",new BigDecimal(809));
        sdao.add("王一",new BigDecimal(680)); 
    }


    @Test
    public void query() {
        StudentMapper sdao = this.session.getMapper(StudentMapper.class);
        //Student st = sdao.queryById(12);
        //System.out.println(st);
        System.out.println(sdao.query());


        //RowBounds r = new RowBounds(2,2);
        //RowBounds r = new RowBounds(0,3);
        //System.out.println(sdao.page(r));


        int currpage = 1;
        int pagesize = 3;
        //System.out.println(sdao.pages(currpage*pagesize,currpage*pagesize-pagesize));
        System.out.println(sdao.pages(currpage,pagesize));

    }

注:oracle 数据库中有表student,没有创建;
#建立学生信息表:
create table student(id number,name varchar2(30),money number(8,2),primary key(id));

#建立自增序列对象: 
  create sequence sid;

以上内容适合初学者参考,仅供参考。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值