資料庫與java的串連

來源:互聯網
上載者:User

標籤:local   tac   字元   etc   預留位置   ide   執行sql   ace   generate   

jdbc: java database connection,也就是java的資料庫連接。
作用: 完成資料庫資料和記憶體資料的互動。

為了屏蔽不同資料庫的差異,在記憶體和各種資料庫之間建立了一個介面標準。每個廠商按照介面的標準來實現介面類。


jdbc 是java串連資料庫的一套標準。該標準中定義了一系列的介面,由資料庫廠商根據自身資料庫的特點提供實作類別,由開發人員調用。開發人員根據介面調用方法,可以屏蔽不同資料庫廠商的差異。這樣,無論串連什麼資料庫都是一套API。

jdbc 操作步驟:                          流操作步驟:
① 載入驅動,建立串連                        1、建立流
② 執行SQL語句                                2、操作流
③ 關閉串連                                      3、關閉

 

SQL注入: 在執行sql語句時,由於sql語句的值是由使用者輸入的,所以是以變數接收的,如果以拼接字串方式來執行SQL語句,一旦資料中有非法字元或者有關鍵字時,會導致語法錯誤,或者執行結果不正確的情況,這稱為SQL注入。


Statement和PreparedStatement的區別:

Statement是PreparedStatement 的父介面。在執行SQL語句時,只能以拼接字串方式,拼接值。會引起SQL注入。而且效率低。

PreparedStatement,是先行編譯SQL語句執行對象,支援預留位置方式,無論資料是什麼值,都當字串處理,不會引起SQL注入。而且效率高。

 

java和資料庫的串連文法:

 1     @Override 2     public void add(ManBean bean) { 3          4         //連線物件 5         Connection con=null; 6         //SQL語句執行對象 7         PreparedStatement ps=null; 8         // 載入驅動 9         try {10             Class.forName("org.gjt.mm.mysql.Driver");11             //建立串連,localhost為主機IP地址(本機),3306為mysql的連接埠號碼,12             //testdb為資料庫的庫名,characterEncoding=utf-8為位元組編碼集13             //root為mysql的登入名稱,123456為mysql的登入密碼14             con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb?characterEncoding=utf-8",15                     "root","123456");16             System.out.println(con);17             18             //執行SQL語句,?為預留位置19             ps=con.prepareStatement("insert into t_man(manName,birthday,money) values(?,?,?)");20             //填充預留位置21             ps.setString(1, bean.getName());22             ps.setDate(2, bean.getBirthday());23             ps.setInt(3, bean.getMoney());24             //更新資料庫25             ps.executeUpdate();26         } catch (Exception e) {27             e.printStackTrace();28         }29         finally{//關閉串連30             try {31                 ps.close();32                 con.close();33             } catch (Exception e) {34                 // TODO Auto-generated catch block35                 e.printStackTrace();36             }37         }38     }

 

資料庫與java的串連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.