mysql对象关闭时 不允许操作_关闭ResultSet后不允许执行操作(mysql,java)

我被错误卡住了,这里的第42行是while(rs.next()){,请帮我解决这个问题,我在这个问题上待了几个小时。

> Exception in thread "main" java.sql.SQLException: Operation not allowed after ResultSet closed

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)

at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:740)

at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:6326)

at removeStopwords.RemoveStopwords.main(RemoveStopwords.java:42)

这是我的代码:

package removeStopwords;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.StringTokenizer;

import com.mysql.jdbc.Connection;

import com.mysql.jdbc.Statement;

public class RemoveStopwords {

// JDBC driver name and database URL

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

static final String DB_URL = "jdbc:mysql://localhost/mydbv2";

// Database credentials

static final String USER = "root";

static final String PASS = "***";

public static void main(String[] args) throws ClassNotFoundException, SQLException {

Connection conn = null;

Statement stmt = null;

Class.forName("com.mysql.jdbc.Driver");

conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS);

stmt = (Statement) conn.createStatement();

String sql;

ResultSet rs = null;

ResultSet rs2 = null;

ResultSet rs3 = null;

java.sql.PreparedStatement ps = null;

int event_id = 10;

sql = "SELECT id,text from tweet where event_id = " + event_id;

rs = stmt.executeQuery(sql);

String text = "";

Long id;

while (rs.next()) {

id = rs.getLong("id");

text = rs.getString("text");

System.out.println("tweet = " + text);

text = text.replaceAll("http[^\\s]+", "");

text = text.replaceAll("www[^\\s]+", "");

System.out.println("tweet after removal of links= " + text);

StringTokenizer st = new StringTokenizer(text);

while (st.hasMoreTokens()) {

String stopword = st.nextToken();

System.out.println("stopword : " + stopword);

sql = "SELECT * from stopwords WHERE word =" + '"'+stopword+'"';

rs2 = stmt.executeQuery(sql);

if (rs2.next()) {

text = text.replaceAll(stopword, "");

System.out.println("tweet after removing stopword = " + text);

}

sql = "SELECT * from filtertweet where tweet_id = " + id + "";

rs3 = stmt.executeQuery(sql);

if (!rs3.next()) {

sql = "INSERT INTO filtertweet VALUES(?,?)";

ps = conn.prepareStatement(sql);

ps.setLong(1, id);

ps.setString(2, text);

ps.executeUpdate();

}

}

}

stmt.close();

conn.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值