jdbc java數據庫連接(java database connection)
是一套標準的接口,由數據庫廠商實現具體的操作。
mysql: mysq-conn.jar
oracle: oracle-java-conn.jar
db2: db2-java-conn.jar
1.jdbc連接數據庫
https://mp.csdn.net/console/editor/html/80732459
//傳統jdbc連接
public Map getConnection(){
Connection connection=null;
String url="jdbc:mysql://127.0.0.1:3306/test";
String user="root";
String password="password";
Map map=new HashMap();
try {
//1.加載數據庫驅動
Class.forName("com.mysql.jdbc.Driver");
//2.創建 數據庫連接
connection = DriverManager.getConnection(url, user, password);
//3.創建發送對象
String sql="SELECT * FROM table";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4.返回結果集
ResultSet resultSet = preparedStatement.getResultSet();
//獲取結果集中的數據
while (resultSet.next()){
System.out.println(resultSet.next());
map.put(resultSet.getFetchSize(),resultSet.next());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//5.關閉連接
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return map;
}
2.註冊驅動
第二種方式,是通過反射獲取到驅動類,加載到jdbc中的。
3.創建連接對象
4.獲取執行sql的對象
5.事務管理
6.statement執行sql的對象
7.preparestatement
表示預編譯的sql語句對象:
這個對象的做法是首先編寫一個帶有佔位符?的sql語句,發往數據庫編譯,然後再將參數傳入,讓數據庫幫我們查詢。
運行原理
優點:
a.sql注入問題
通過向sql語句中的參數位置傳遞一些特殊的字符,來改變SQL的原有意思。
防止sql注入的根本:預編譯將參數中特殊的字符進行了轉移。