作者:小鄭aa 
原文:https://blog.csdn.net/xiaozhegaa/article/details/70208646

引言:Java對數據庫的操作有很多種技術。例如說jdbc,dbutil +C3p0,hibernate,jdbcTemplate等等【這五個都會總結】,到後面的話使用一些高級的框架去操作數據庫,比如hibernate。但是底層操作數據庫是重要的,高級框架也是也底層爲基礎搭建的,所以這裏還是總結一下對一些常用數據庫的操作技術,有興趣的看一下。或者只挑你感興趣的那一部分看

一:JDBC【什麼是JDBC?爲什麼使用JDBC?怎麼使用JDBC?】what +why + how

【what】SUN公司爲使Java程序靈活的訪問各種不同的關係型數據庫提供的規則。【why】也就是說,不需要java應用程序去直接操作數據庫,而是通過sum公司提供的方法統一去操作數據庫,那麼我們就不需要針對不同的數據庫寫不同的代碼。只需要在配置文件裏面配置一下即可,寫代碼更加方便。使Java程序靈活移植【how】下面講【下面的案例全部以mysql爲例】

Java操作數據庫之jdbc「原生方式」

二:開發步驟

1)導入mysql包,這一步是必須的,無論使用什麼技術操作數據庫,都需要導入mysql包

Java操作數據庫之jdbc「原生方式」

2) JDBC的六個固定步驟

1,註冊數據庫驅動[利用反射]

2,取得數據庫連接對象Connection

3,創建SQL對象

4,執行SQL命令,並返回結果集

5,處理結果集

6,依次關閉結果集

//1,註冊數據庫驅動有兩種方式
第一種是:直接註冊數據庫驅動
DriverManager.registerDriver(new Driver());
第二種是:利用反射機制間接加載數據庫驅勸,推薦用第二種
Class.forName("com.mysql.jdbc.Driver");
//2. 取得數據庫連接對象Connection
//取得與MySQL數據庫連接的橋樑,參數分別是:連接數據庫 用戶名 密碼Connection conn = DriverManager.getConnection( "jdbc:mysql:///zz2017","root","xiaozheng");
//前兩步驟需要記住以下。下面的
//4:執行sql語句
insert/update/delete----PreparedStatement .executeUpdate(sql):返回值表示影響記錄的行數
select------------------PreparedStatement .exeucteQuery():返回值表示符合條件的記錄

【注意】創建sql對象的時候,有人會用Statement,我案例中使用的是 PreparedStatement。使用這個的好處是變量可以用佔位符的方式去表示,而且它可以防止sql注入,所以我就採用這種方式,不用Statement

//案例源碼
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/mydb2";
String user = "root";
String password = "root";
String sql = "insert into user(name,gender,salary) values(?,?,?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//註冊數據庫驅動
Class.forName(driver);
//取得數據庫連接
conn = DriverManager.getConnection(url, user, password);
//進行預編譯,這裏進行參數設置
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"xiaozheng");
pstmt.setString(2,"男");
pstmt.setFloat(3,8000);
//進行編譯
rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
float salary = rs.getFloat("salary");
System.out.println(id + ":" + name + ":" + gender + ":"+ salary);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(rs!=null){//輕量級,創建和銷燬rs所需要的時間和資源較小
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(stmt!=null){//輕量級,創建和銷燬rs所需要的時間和資源較小
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(conn!=null){//重量級,創建和銷燬rs所需要的時間和資源較小
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}

提醒一點,上述代碼中發現有很多相同的地方,太長了。那麼可以把相同部分提取成一個工具類,下面都是採用工具類的方式演示。工具類會打包給大家,有需要的可以下載看看

Java操作數據庫之jdbc「原生方式」

Java操作數據庫之jdbc「原生方式」

三:CURL操作

插入操作【圖有點不清,建議可拖到新窗口打開圖片就可以看清】

Java操作數據庫之jdbc「原生方式」

讀取操作

Java操作數據庫之jdbc「原生方式」

刪除

Java操作數據庫之jdbc「原生方式」

修改操作

Java操作數據庫之jdbc「原生方式」

相关文章