JDBC与Mybatis调用存储过程实例(分页存储过程)

16 篇文章 2 订阅

先看看存储过程是怎么写的


DROP PROCEDURE IF EXISTS `helloPage`;
Create PROCEDURE helloPage(tableName text,in pageIndex INT,in pageSize INT)

BEGIN
		
	DECLARE page_index INT DEFAULT 1;   
	DECLARE tbl_name nvarchar(100);


	SET page_index = ( pageIndex-1 ) * pageSize;

	SET tbl_name = CONCAT(tableName);

	SET @STMT := CONCAT("select o.* from (","SELECT * FROM ", tbl_name,") o limit ",page_index,",",pageSize,";");

  PREPARE STMT FROM @STMT;

  EXECUTE STMT;
	
END;

调用:CALL helloPage("Notice",2,10);


然后就是JDBC的调用


//普通JDBC调用存储过程
	public void jdbcTest(){
		String url = "jdbc:mysql://172.18.81.206/openfire";  
	    String name = "com.mysql.jdbc.Driver";  
	    String user = "root";  
	    String password = "cvtecici";  
	    Connection conn = null;  
	    CallableStatement callStmt = null;
		 
	    try {
	    	Class.forName(name);//指定连接类型  
            conn = DriverManager.getConnection(url, user, password);//获取连接  
            callStmt=conn.prepareCall("CALL helloPage('Notice',?,?)");
            callStmt.setInt(1,3);
            callStmt.setInt(2,10);
            
            ResultSet rs=callStmt.executeQuery();
            while(rs.next()){
            	System.out.println(rs.getString("noticeId"));
            }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Mybatis调用  测试类


<span style="white-space:pre">	</span>//Mybatis 测试调用存储过程
	public void mybatisTest(){
		SqlSession sqlSession=sqlSessionFactory.openSession();
		NoticeDao noticeDao=sqlSession.getMapper(NoticeDao.class);
		System.out.println(noticeDao.getNotices_test().size());
		
	}


Mybatis 的配置文件

 
   <select id="getNotices_test" resultMap="noticeResult" statementType="CALLABLE">   
   		CALL helloPage("Notice",2,10);
   </select>  

挺容易的............



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值