mysql jdbc内存溢出_jdbc查询大量数据内存溢出的解决方法

向右看齐 2023-01-11 13:01 498阅读 0赞

当使用jdbc从mysql中查询大量数据时,有可能会导致内存溢出。为了避免这种情况的发生可以对数据库进行分页查询。

public static void main(String[] args){

String url = “jdbc:mysql://localhost:3306/test”;

String username = “username”;

String password = “password”;

int data_num = 0;

try {

Class.forName(“com.mysql.jdbc.Driver”);

Connection con = DriverManager.getConnection(url, username,

password);

String sql = “SELECT ID,NAME FROM table_name limit ?,?”;

PreparedStatement pst = con.prepareStatement(sql);

int pageSize = 10000;

int pageId = 0;

do {

pst.setInt(1, pageId * pageSize);

pst.setInt(2, pageSize);

ResultSet rs = pst.executeQuery();

boolean isEmpty = true;

while (rs.next()) {

isEmpty = false;

id = rs.getLong(1);

name = rs.getString(2);

data_num++;

}

if (isEmpty) {

break;

}

pageId++;

} while (true);

con.close();

} catch (SQLException se) {

se.printStackTrace();

}

利用上述的代码可以对数据库表进行遍历处理。

发表评论

表情:
评论列表 (有 0 条评论,498人围观)

还没有评论,来说两句吧...

相关阅读