2013-04-18 42 views
0
public class JDBC { 

static Connection con; 
static Statement stmt; 

public static void main(String argv[]){ 

connect(); 
con.setAutoCommit(false); 

    // Statement s= conn.createStatement(); 

     con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); 

     //set a Savepoint 


     System.out.println("savepoint1"); 
     String SQL = "INSERT INTO Flight VALUES (1000, '22/7/2013', 'LGW', 'MAN', 10,40)"; 
     stmt.executeUpdate(SQL); 

     Savepoint savepoint1 = conn.setSavepoint("Savepoint1"); 


     String SQL2 = "UPDATE Flight SET flightid = 500 WHERE Flightid = 1000"; 
     stmt.executeUpdate(SQL2); 

     con.rollback(savepoint1); 


     con.commit(); 
     System.out.println("end"); 
} 



static void connect() throws SQLException, ClassNotFoundException, DataSourceException { 
    try { 
     // load database driver driver 

     Class.forName(DataSource.getClassName()); 

     // connect to database from a given URL with a given username and 
     // password 

     Connection con = DriverManager.getConnection(DataSource.getURL(), DataSource.getUserName(), DataSource.getPassword()); 

     // create an SQL statement object 
     stmt = con.createStatement(); 
    } catch (SQLException se) { 
     con = null; 
     stmt = null; 
     throw (se); 
    } 
    }  
    } 
} 

你好,即時通訊試圖瞭解如何使用保存點。但每次我運行程序..出來空指針異常,說錯誤發生在con.setautocommit(false);jdbc postgresql發生交易錯誤

任何建議會理解....

+0

你確定你的'con'不是null嗎?我的意思是你初始化了它? – 2013-04-18 03:45:52

+0

沒有什麼可以確定的,這就是問題....連接沒有正確初始化。 – Thihara 2013-04-18 03:49:41

+0

是的..我做了... – johnnily 2013-04-18 03:50:39

回答

1

最有可能的,你有沒有正確初始化你Connection con變量。 您沒有顯示該部分代碼,因此我們無法幫助您。