Try and catch块仅执行第一条语句

时间:2019-01-05 11:28:13

标签: java postgresql jdbc

我正在使用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());
                  }

            }

在此先感谢您的混乱代码。

0 个答案:

没有答案