- 沒有jdbc以前
2> 程序員要熟悉各個數據庫的驅動
- 有了jdbc:
- 代碼失控:
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注入, 木有轉義
- 持久層與業務層耦合