2 개의 클래스 ConnectionUtil, DemoResultSet이 있습니다. 문제는 내가 을 2 번() 삽입 할 때입니다. 단지 하나의 레코드 만 데이터베이스에 삽입됩니다. 두 번째 삽입 삽입 오류 : "Error:The connection is closed."
. 그래서 주석을 제거 할 때 close() statement
. 그것은 좋은 실행합니다. 나는 그 곤경이 뭔지 모른다. 두 번째 삽입 클로즈 된 접속에 발생하는, 그래서 누군가는 나에게 몇 가지 아이디어Java jdbc를 데이터베이스에 삽입 할 수 없습니다.
public class ConnectionUtil {
private static String url = "jdbc:sqlserver://localhost:1433;databaseName=Northwind";
private static String username = "user";
private static String pw = "pass";
private static Connection conn = null;
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(ConnectionUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static Connection getConnection() {
if (conn == null) {
try {
conn = DriverManager.getConnection(url, username, pw);
} catch (SQLException ex) {
Logger.getLogger(ConnectionUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
return conn;
}
}
public class DemoResultSet {
private static ResultSet rs = null;
private static Connection conn = null;
public static void initialize() {
try {
conn = ConnectionUtil.getConnection();
Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "select CategoryID, CategoryName from Categories";
rs = statement.executeQuery(sql);
} catch (SQLException ex) {
Logger.getLogger(DemoResultSet.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
initialize();
insert();
insert();
}
public static void insert() {
try {
rs.moveToInsertRow();
rs.updateString("CategoryName", "Test C1008G3");
rs.insertRow();
System.out.println("Inserted");
conn.close(); //uncomment it's okay
} catch (SQLException ex) {
System.out.println("Error:" + ex.getMessage());
}
}
}
나는 당신이 말한 것을합니다. 그러나 나는 실수를합니다. – haind
어떤 오류가 있습니까? – Stultuske
표시 : Oct 01, 2013 4:34:20 PM ResultSetDemo.DemoResultSet initialize 오류 : 연결이 닫혔습니다. 심각도 : null – haind