JDBC之增刪改查
阿新 • • 發佈:2018-12-09
一、什麼是JDBC
JDBC(Java DataBase Connectivity)就是Java資料庫連線,用Java語言來操作資料庫。簡單地說,JDBC就是用於執行SQL語句的一系列Java API。
二、為什麼要使用JDBC
早期SUN公司想編寫一套可以連線天下所有資料庫的API,但是因為各個廠商的資料庫伺服器差異太大了,這任務幾乎無法實現。後來SUN開始與資料庫廠商們討論,最終得出的結論是,由SUN提供一套訪問資料庫的規範,並提供連線資料庫的協議標準,然後各個資料庫廠商會遵循SUN的規範提供一套訪問自己公司的資料庫伺服器的API出現。SUN提供的規範命名為JDBC,而各個廠商提供的介面實現被稱之為驅動。
通過JDBC使得我們可以直接使用Java程式設計來對關係資料庫進行操作。通過封裝,可以使開發人員使用純Java API完成SQL的執行。
三、準備工作
我們以MySql為例來使用JDBC操作資料庫,現有如下的資料表在MySql中:
其建表語句為:
CREATE DATABASE jdbcDemo; use jdbcDemo; CREATE TABLE `per`( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(50), `age` INT, `city` VARCHAR(100) ); INSERT INTO per VALUES(NULL,'Estelle',24,"深圳"); INSERT INTO per VALUES(NULL,'Jasmine',27,"上海"); INSERT INTO per VALUES(NULL,'Iris',23,"長沙"); INSERT INTO per VALUES(NULL,'Emily',25,"廣州"); INSERT INTO per VALUES(NULL,'Bunny',25,"深圳");
準備好mysql資料庫的驅動jar包,並匯入到專案中
四、準備工作完畢,現在讓我們一起學習下JDBC的基本操作吧
- 載入驅動類並獲取連線:
package com.gyx.jdbc; import java.sql.Connection; import java.sql.DriverManager; public class JDBCDemo { public static void main(String[] args) { Connection connection = null; try { Class.forName("com.mysql.jdbc.Driver"); // 載入驅動類 // 連線MySql的URL String url = "jdbc:mysql://localhost:3306/jdbcDemo"; String username = "root"; // MySql的使用者名稱 String password = "123"; // MySql的使用者密碼 // 獲取連線 connection = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } } }
以上程式碼若若能夠正常執行不拋異常,則證明之前的準備工作是沒有失誤的。
- 傳送增刪改語句
package com.gyx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
private static Connection connection;
public static void main(String[] args) {
connection = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 載入驅動類
// 連線MySql的URL
String url = "jdbc:mysql://localhost:3306/jdbcDemo";
String username = "root"; // MySql的使用者名稱
String password = "123"; // MySql的使用者密碼
// 獲取連線
connection = DriverManager.getConnection(url, username, password);
CUDMethod();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void CUDMethod() {
try {
// 建立用於傳送SQL語句的Statement物件
Statement statement = connection.createStatement();
// Sql語句
String insert = "INSERT INTO per VALUES(NULL,'Tom',29,'北京')";
String update = "UPDATE per SET age=31,city='成都' where name='Iris'";
String delete = "DELETE FROM per WHERE name='Bunny'";
// 執行sql語句
statement.executeUpdate(insert);
statement.executeUpdate(update);
statement.executeUpdate(delete);
System.out.println("增刪改命令執行成功!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在控制檯檢視資料庫的內容,可以看到表中資料已經發生了改變。
- 查詢表中的資料
package com.gyx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
private static Connection connection;
public static void main(String[] args) {
connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/jdbcDemo";
String username = "root";
String password = "123";
connection = DriverManager.getConnection(url, username, password);
// 得到返回的結果集物件
ResultSet resultSet = queryTable();
// 遍歷結果集物件
while (resultSet != null && resultSet.next()) {
String item = resultSet.getInt("id") + " "
+ resultSet.getString("name") + " "
+ resultSet.getInt("age") + resultSet.getString("city");
System.out.println(item);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 用於查詢的方法 返回結果集物件
public static ResultSet queryTable() {
try {
Statement statement = connection.createStatement();
String query = "SELECT * FROM per";
ResultSet resultSet = statement.executeQuery(query);
return resultSet;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
查詢出表中的資料如下表:
到這裡,使用JDBC進行基本的增刪改查就學習完畢了。