我正在使用jdbc驱动程序学习与postgresql的Java连接。
方法newTable()使用jdbc在postgreSQL中创建两个关系表,其中一个具有主键和外键。下面的代码运行正常,并按预期创建了两个表。
但是,当我尝试结合使用try和catch方法这两个方法并在中间消除try catch(在代码部分中从此处开始->在此处结束)时,它仅执行第一个结果集并创建第一个表并跳过第二个。
请问是什么原因导致了这种现象。
public class createTables {
private static Connection con; private static ResultSet rs; private static Statement st;
public createTables(String url, String username, String password){
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(url, username, password);
st = con.createStatement();
} catch (Exception e) {
System.err.println(e.getClass().getName()+": "+e.getMessage());
}}
// create new table in postgreSQL
public void newTable() {
try {
//calls a method which returns string to create sql statement for table with a primary key
rs = st.executeQuery(tablePrimary());
//starts here
} catch (Exception e) {
System.err.println(e.getClass().getName()+": "+e.getMessage());
}
try {
//ends here
//calls a method which returns a string to create sql statement for a table with a foreign key
rs = st.executeQuery(tableForeign());
} catch (Exception e) {
System.err.println(e.getClass().getName()+": "+e.getMessage());
}
}
在此先感谢您的混乱代码。