2013-04-18 44 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变量。 您没有显示该部分代码,因此我们无法帮助您。