mysql存储过程编写分页插入数据功能与调用

DELIMITER $
CREATE PROCEDURE insert_series(totalPage BIGINT)
BEGIN 
    #声明变量
		DECLARE curPage BIGINT DEFAULT 0;
		#一次1百万条
		DECLARE pageSize BIGINT DEFAULT 1000000;
		# 开始条数 
		DECLARE startCount BIGINT DEFAULT 0;
		
    #while循环,参数  totalPage 决定循环次数,do后面是循环体
    WHILE(curPage<totalPage) DO
     BEGIN
        SELECT curPage;
        SET curPage=curPage+1;
				  SELECT startCount;
        SET startCount=(curPage-1)*pageSize;
        # sql 语句
        INSERT INTO b_table (vehicle_series_name,vehicle_series_code) SELECT   vehicle_series_name,vehicle_series_code               FROM     a_table  limit startCount,pageSize ;
     END;
    #结束循环
    END WHILE;
END $
DELIMITER ;
#调用
#CALL insert_series(3)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java Web中实现MySQL分页功能,可以按照以下步骤进行: 1. 获取总记录数:使用SQL语句查询数据表中的总记录数,例如: ```sql SELECT COUNT(*) FROM table_name; ``` 2. 计算总页数:根据每页显示的记录数和总记录数计算出总页数,例如: ```java int pageSize = 10; // 每页显示的记录数 int totalCount = 100; // 总记录数 int totalPages = (totalCount + pageSize - 1) / pageSize; // 计算总页数 ``` 3. 查询当前页的数据:使用LIMIT关键字限制查询结果的范围,例如: ```sql SELECT * FROM table_name LIMIT start, pageSize; ``` 其中,start表示查询结果的起始位置,可以根据当前页码和每页显示的记录数计算得出: ```java int currentPage = 1; // 当前页码 int start = (currentPage - 1) * pageSize; // 计算查询结果的起始位置 ``` 4. 将查询结果封装成List对象并返回给前端。 完整的MySQL分页功能实现代码如下所示: ```java public List<User> findByPage(int currentPage, int pageSize) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; List<User> userList = new ArrayList<>(); try { // 获取数据库连接 conn = JdbcUtils.getConnection(); // 获取总记录数 String countSql = "SELECT COUNT(*) FROM user"; pstmt = conn.prepareStatement(countSql); rs = pstmt.executeQuery(); int totalCount = 0; if (rs.next()) { totalCount = rs.getInt(1); } // 计算总页数 int totalPages = (totalCount + pageSize - 1) / pageSize; // 查询当前页的数据 String dataSql = "SELECT * FROM user LIMIT ?, ?"; pstmt = conn.prepareStatement(dataSql); pstmt.setInt(1, (currentPage - 1) * pageSize); pstmt.setInt(2, pageSize); rs = pstmt.executeQuery(); while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); userList.add(user); } } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.close(conn, pstmt, rs); } return userList; } ``` 在实际应用中,可以将上述代码封装成一个通用的分页工具类,方便其他模块的调用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值