一、jdbc基礎

1、jdbc是什麼: Java Data Base Connectivity
     java語言訪問數據庫的一套接口; 也是調用者和實現者的一套協議, 數據庫廠商開發自己的實現。

2、爲什麼會有jdbc:

  •     沒有jdbc以前
           缺點: 1> 移植性差 、
                      2> 程序員要熟悉各個數據庫的驅動
    
 
  • 有了jdbc:
         

3、jdbc的缺點:
  • 代碼失控:
          public static void main(String[] args){

          String driver = "com.mysql.jdbc.Driver";//數據庫驅動
          String url = "jdbc:mysql://localhost:3306/**";//**指的是數據庫名稱
          String username = "root";//數據庫用戶名
          String password = "root";//數據庫密碼
          Connection conn = null;
          Statement stat = null;
          ResultSet rs = null;
          try{
               Class.forName(driver);//加載數據庫驅動
               conn = DriverManager.getConnection(url,username,password);//連接Connection對象
               stat = conn.createStatement();//創建Statement對象
               String sql = "select userid,username,password from user";
               rs = stat.executeQuery(sql);//執行sql語句返回結果集
               while(rs.next()){
                    int userid = rs.getInt("userid");
                    String name = rs.getString("username");
                    String pwd = rs.getString("password");
                    System.out.println("id:"+userid+"\tname:"+name+"\tpassword:"+pwd);
               }
          } catch(ClassNotFoundException e){
               e.printStackTrace();
          } catch(SQLException e){
               e.printStackTrace();
          } finally {
               if(rs != null){
                    try{
                         rs.close();//關閉結果集rs
                    } catch(SQLException e){
                         e.printStackTrace();
                    } finally {
                         if(stat != null){
                              try{
                                   stat.close();//關閉stat對象
                              } catch(SQLException e){
                                   e.printStackTrace();
                              } finally {
                                   if(conn != null){}
                                        try{
                                             conn.close();//關閉conn對象
                                        } catch(SQLException e){
                                             e.printStackTrace();
                                        }
                              }
                         }
                    }
               }
          }
     }
  • sql與java代碼耦合
  • 安全性: sql注入, 木有轉義
  • 持久層與業務層耦合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章