點滴

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            7 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
          Java中對數據庫的操作一般分為三個步驟
          一,加載驅動程序
          Class.forName("org.postgresql.Driver");
          二,打開連接
          String url="jdbc:postgresql:COREJAVA";
          String username="dbuser";
          String password="secret";
          Connection conn=DriverManager.getConnection(url,username,password);
          前面兩個步驟非常的簡單,對于任意的數據庫來講都是這些內容,而說道比較多的就是第三步了
          三,對數據庫進行操作
              顯而易見對數據庫的操作就是執行SQL命令,首先需要創建一個Statement對象。要創建statement對象,需要使用調用DriverManager.getConnection方法所獲得的Connection對象。
              Statement stmt=conn.createStatatement();
              String command="UPDATE Books SET Price=Price-5.00 WHERE Title NOT LIKE '%Introduction%'";
          然后調用Statement類中的executeUpdate方法:  stmt.executeUpdate(command);
              executeUpdate方法將返回受SQL命令影響的行數。列入,在先前的例子中調用本方法將返回那些降價5美元的圖書的總數.
              executeUpdate方法既可以執行諸如INSERT,UPDATE和DELETE之類的操作,也可以執行諸如CREATE TABLE和DROP TABLE之類的數據命令。
          但是,執行SELECT查詢時必須使用executeQuery方法。另外還有一個execute方法可以執行任意的SQL語句。此方法通常只用于用戶提供的交互式查詢。 
              當我們執行查詢操作時,通常最感興趣的是查詢結果。executeQuery方法返回一個ResultSet對象,可以通過它來每次移行地迭代遍歷所有查詢結果。    ResultSet rs=stmt.executeQuery("SELECT * FROM Books");
             
              另外當你看這點的時候,我可以告訴你SQL的數據類型和Java的數據類型并非完全一致,我不是很想完全列出所有的對照表,因為任意的書籍上面肯定都有相關的介紹。只是下面的這幾種你最好還是記住,因為非常有可能就在你的程序中會出現錯誤,左邊為SQL右邊為Java數據類型
          Interger或INT                                int
          NUMERIC(m,n),DECIMAL(m,n)或DEC(m,n)          java.math.BigDecimal
          FLOAT(n)                                     double
          REAL                                         float
          DOUBLE                                       double         
              下面介紹一下java.sql.Statement的常用方法,我覺得這個挺重要的
          int  executeUpdate(String sql)
              執行字符串中指定的INSERT,UPDATE,DELETE等SQL語句。還可以執行數據定義語言(DLL)的語句,如CREATE TABLE.返回受影響的記錄總數,如果是沒有更新計數的語句,則返回-1.本著對大家和自己負責的任務我徹底用了這個函數,在執行INSERT,UPDATE,DELETE的操作的事后返回的的確是影響的函數,一般你執行一條INSERT語句的事后返回的肯定是1,此外當你執行CREATE TABLE操作的時候返回的是0.至于等于-1的情況我還沒有遇到,等遇到的時候第一時間更新此文章。
           
          boolean execute(String sqlStatement)
              執行字符串中指定的SQL語句。如果該語句返回一個結果集則該方法返回true;反之,返回false。使用getResultSet或getUpdateCount方法可以得到語句的執行結果。 

          int getUpdateCount()
              返回受前一條更新語句影響的記錄總數。如果前一條語句未更新數據庫,則返回-1.對于每一條執行過的語句,該方法只能被調用一次。
          ResultSet  getResultSet()
              返回前一條查詢語句的結果集。如果前一條語句未產生結果集,則返回null值。對于每一條執行過的語句,該方法只能被調用一次。

          接著簡單的介紹一下PreparedStatement的用法吧,就不描述了僅給出代碼,大家肯定都會明白的
             string  sql = "select * from people p where p.id = ? and p.name = ?";
             PreparedStatement pStmt=conn.prepareStatement(sql);
             pStmt.setint(1,id);
             pStmt.setstring(2,name);
             resultset rs = pStmt.executequery();
          ==========================================================================================
             pStmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
             pStmt.setString(1,var1);
             pStmt.setString(2,var2);
             pStmt.setString(3,var3);
             pStmt.setString(4,var4);
             pStmt.executeUpdate();



          posted on 2007-09-14 16:06 developer 閱讀(385) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大庆市| 营口市| 怀安县| 香港 | 揭西县| 浦江县| 焉耆| 玉林市| 海淀区| 南通市| 武山县| 张家川| 玉山县| 长武县| 海淀区| 嘉荫县| 龙口市| 松滋市| 邻水| 定安县| 始兴县| 江安县| 隆昌县| 蓝山县| 耒阳市| 苏尼特左旗| 阜新| 仁化县| 永定县| 台东县| 浦县| 大城县| 汤阴县| 应用必备| 湛江市| 子洲县| 余姚市| 望城县| 木里| 扶沟县| 贞丰县|