千里馬

          天馬行空

          jdbc 的一些重點

          1,jdbc的作用:與數據庫建立連接、執行SQL 語句、處理結果。
          2,DriverManager :依據數據庫的不同,管理JDBC驅動
             Connection :負責連接數據庫并擔任傳送數據的任務  
           Statement :由 Connection 產生、負責執行SQL語句
            ResultSet:負責保存Statement執行后所產生的查詢結果
          3,jdbc URL:提供一種標識數據庫的方法,使相應的JDBC驅動程序識別數據庫并與之建立4,連接:將對JDBC API的調用,轉換為對另一組數據庫連接API的調用
          優點:可以訪問所有ODBC可以訪問的數據庫
          缺點:執行效率低、功能不夠強大
          5,純Java驅動
          • 由JDBC驅動直接訪問數據庫
          • 優點:100% Java,快又可跨平臺
          • 缺點:訪問不同的數據庫需要下載專用的JDBC驅動
          6,使用純Java驅動方式進行直連
          1、下載數據庫廠商提供的驅動程序包
          2、將驅動程序包引入工程中
          3、編寫代碼,通過純Java驅動方式與數據庫建立連接 
          例如:
                 Class.forName(“com.mysql.jdbc.Driver”);
                 Connection con=DriverManger.getconnection(“jdbc:mysq://localhost:3306/tset”,”root”,”mysql”);
          7, 在使用純Java驅動方式進行數據庫連接時,如果程序在運行時拋出異常:               
           java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;DatabaseName=news   
           那么出錯的原因是什么?如何解決?
            工程中沒有載入驅動,應該把相應的.jar文件導入到lib文件夾下。
          8,請單獨建立一個類ConnectionManager,專門負責建立數據庫連接、以及關閉連接,并思考這樣做帶來的好處是什么?
           既便于管理又可以提高代碼的復用率。
          9,PreparedStatement 接口繼承 Statement接口
          PreparedStatement比普通的Statement對象使用起來更加靈活,更有效率
          Sql語句運行多次時盡量使用preparedStatement,以便提高運行效率。
          例子:
          public class NewsFirstTitleDB2 {
          public static void main(String[ ] args) {
          Connection con = null;
          PreparedStatement pStatement = null;
          try {
          SimpleDateFormat hmFromat =
                                     new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
          con = ConnectionManager.getConnection();
          String strSql = "insert into FirstLevelTitle values(?,?,?,?)";
          pStatement = con.prepareStatement(strSql);
          pStatement.setInt(1, 1);
          pStatement.setString(2, "軍事");
          pStatement.setString(3, "管理員");
          pStatement.setString(4, hmFromat.format(new Date()));
          pStatement.executeUpdate();
          } catch (SQLException sqlE) {
          sqlE.printStackTrace();
          } finally {
          ConnectionManager.closeStatement(pStatement);
          ConnectionManager.closeConnection(con);
          }
          }
          10,statement主要用于執行靜態的sql語句;
          Preparedstatement執行動態的sql語句
          Resultset 返回查詢的結果集

          posted on 2012-05-09 12:53 Mr Lee 閱讀(383) 評論(0)  編輯  收藏


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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          (hibernate)http://www.aygfsteel.com/dyllove98/archive/2012/05/12/377959.html

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 灵台县| 天长市| 仪征市| 马公市| 呼和浩特市| 梨树县| 宜宾县| 长治县| 石屏县| 宜君县| 道真| 凌海市| 象州县| 北海市| 仁布县| 海晏县| 凤冈县| 洱源县| 西安市| 阳西县| 洪江市| 虹口区| 隆尧县| 长宁县| 抚州市| 库车县| 湘潭县| 镇沅| 宜州市| 成安县| 夏津县| 楚雄市| 阜平县| 汤阴县| 三穗县| 中宁县| 平凉市| 图片| 浮山县| 兴安盟| 固阳县|