繼續(xù)關(guān)注我的C語言學(xué)習(xí)博客

          林臨的地盤

          java學(xué)習(xí)博客
          posts - 44, comments - 28, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          有同事問到在程序中怎樣知道數(shù)據(jù)庫表中那些字段是主鍵。當(dāng)時(shí)不知道,晚上回來看了看JDK的文檔。

                 在使用JDBC來查詢數(shù)據(jù)庫的時(shí)候,通常的步驟是:

          1. 注冊(cè)驅(qū)動(dòng)程序

          2. 獲取數(shù)據(jù)庫連接

          3. 執(zhí)行查詢語句

          4. 關(guān)閉連接。

                 在獲得數(shù)據(jù)庫連接后,就可以通過getMetaData()方法來獲取DatabaseMetaData;然后通過DatabaseMetaDatagetPrimaryKeys ()方法來獲取主鍵的信息。

                 下面是我做的示例程序,該程序在JBuilder2005oracle8i下通過:
          import java.sql.*;

          import javax.sql.*;

          public class TestJDBC {

              public TestJDBC() {

              }

           

              public static void main(String[] args) throws SQLException {

                  Connection con = null;

                  Statement st = null;

                  ResultSet rst = null;

                  try{

                               //注冊(cè)數(shù)據(jù)庫驅(qū)動(dòng)程序

                      Class.forName("oracle.jdbc.driver.OracleDriver");

                               //獲取數(shù)據(jù)庫連接

                      con = DriverManager.getConnection("jdbc:oracle:thin:@10.60.203.80:1521:TestDB","123","123");

                               //獲取主鍵信息

                      rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

                               //打印主鍵信息

                      if (!rst.isAfterLast()) {

                          rst.next();

                          System.out.println(rst.getString("TABLE_NAME") + " " +

                                            rst.getString("COLUMN_NAME"));

                      }

                  }

                  catch (Exception e){

                      System.out.println(e.getLocalizedMessage());

                  }

                  finally{

                      try{

                                      //關(guān)閉連接

                          if (rst != null)

                              rst.close();

                          if (con != null)

                              con.close();

                      }

                      catch (SQLException e){

                          throw e;

                      }

                  }

           

              }

          }

           

          上面的程序中,在獲取主鍵信息的時(shí)候,語句

          rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

          用來獲取主鍵信息。關(guān)于該函數(shù)的詳細(xì)信息,請(qǐng)參閱JDK的文檔。這里要說的是,在測試中發(fā)現(xiàn)第三個(gè)參數(shù)(數(shù)據(jù)庫表名)是大小寫敏感的,如果寫成user是查不到結(jié)果的。

           引自:http://www.aygfsteel.com/afrag/

          繼續(xù)關(guān)注我的C語言學(xué)習(xí)博客
          主站蜘蛛池模板: 怀柔区| 南宁市| 北川| 望江县| 呼和浩特市| 云龙县| 邹平县| 紫阳县| 石景山区| 肥东县| 株洲县| 通海县| 乳源| 将乐县| 泰来县| 神池县| 蒙城县| 双鸭山市| 苍南县| 文水县| 闻喜县| 青河县| 湛江市| 花垣县| 东海县| 环江| 竹溪县| 朝阳区| 西充县| 乐安县| 昌江| 遂川县| 田林县| 霍州市| 菏泽市| 毕节市| 柳林县| 天镇县| 洞头县| 扶余县| 台安县|