MySQL_JDBC編程

數據庫編程的必備條件

  1. 編程語言,如Java,C、C++、Python等
  2. 數據庫,如Oracle,MySQL,SQL Server等
  3. 數據庫驅動包:不同的數據庫,對應不同的編程語言提供了不同的數據庫驅動包,如:MySQL提供了Java的驅動包mysql-connector-java,需要基於Java操作MySQL即需要該驅動包。同樣的,要基於Java操作Oracle數據庫則需要Oracle的數據庫驅動包ojdbc。

Java的數據庫編程:JDBC
JDBC,即Java Database Connectivity,java數據庫連接。是一種用於執行SQL語句的Java API,它是Java中的數據庫連接規範。這個API由 java.sql.,javax.sql. 包中的一些類和接口組成,它爲Java開發人員操作數據庫提供了一個標準的API,可以爲多種關係數據庫提供統一訪問。
JDBC工作原理:
JDBC 爲多種關係數據庫提供了統一訪問方式,作爲特定廠商數據庫訪問API的一種高級抽象,它主要包含一些通用的接口類。
JDBC優勢:

  1. Java語言訪問數據庫操作完全面向抽象接口編程
  2. 開發數據庫應用不用限定在特定數據庫廠商的API
  3. 程序的可移植性大大增強

JDBC使用

  1. 準備數據庫驅動包,並添加到項目的依賴中:
    在項目中創建文件夾lib,並將依賴包mysql-connector-java-5.1.47.jar複製到lib中。再配置該jar包到本項目的依賴中:右鍵點擊項目Open Module Settings,在Modules中,點擊項目,配置Dependencies,點擊+,JARS or Directories,將該lib文件夾配置進依賴中,表示該文件夾下的jar包都引入作爲依賴。
  2. 建立數據庫連接
-- 加載JDBC驅動程序:反射,這樣調用初始化com.mysql.jdbc.Driver類,即將該類加載到JVM方法區,並執行該類的靜態方法塊、靜態屬性。
Class.forName("com.mysql.jdbc.Driver");
-- 創建數據庫連接
Connection connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF-8");

-- MySQL數據連接的URL參數格式如下:
jdbc:mysql://服務器地址:端口/數據庫名?參數名=參數值
  1. 創建操作命令(Statement)
Statement statement = connection.createStatement();
  1. 執行SQL語句
ResultSet resultset = statement.executeQuery("select id,sn,name,qq_mail,classes_id from student");
  1. 處理結果集
while (resultSet.next()) {
	int id = resultSet.getInt("id");
    String sn = resultSet.getString("sn");
    String name = resultSet.getString("name");
    int classesId = resultSet.getInt("classes_id");
	System.out.println(String.format("Student: id=%d, sn=%s, name=%s, classesId=%s", id, sn, name, classesId));
}
  1. 釋放資源(關閉結果集,命令,連接)
//關閉結果集
if (resultSet != null) {
    try {
        resultSet.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}
//關閉命令
if (statement != null) {
    try {
        statement.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}
//關閉連接命令
if (connection != null) {
    try {
        connection.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}

JDBC常用接口和類

  1. JDBC API:在Java JDBC編程中對數據庫的操作均使用JDK自帶的API統一處理,通常與特定數據庫的驅動類是完全解耦的。所以掌握Java JDBC API (位於 java.sql 包下) 即可掌握Java數據庫編程。
  2. 數據庫連接Connection:Connection接口實現類由數據庫提供,獲取Connection對象通常有兩種方式:
    一種是通過DriverManager(驅動管理類)的靜態方法獲取:
-- 加載JDBC驅動程序
Class.forName("com.mysql.jdbc.Driver");
-- 創建數據庫連接
Connection connection = DriverManager.getConnection(url);

一種是通過DataSource(數據源)對象獲取。實際應用中會使用DataSource對象。

DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();
  1. Statement對象
    Statement對象主要是將SQL語句發送到數據庫中。
  2. ResultSet對象
    ResultSet對象它被稱爲結果集,它代表符合SQL語句條件的所有行,並且它通過一套getXXX方法提供了對這些行中數據的訪問。
    ResultSet裏的數據一行一行排列,每行有多個字段,並且有一個記錄指針,指針所指的數據行叫做當前數據行,我們只能來操作當前的數據行。我們如果想要取得某一條記錄,就要使用ResultSet的next()方法 ,如果我們想要得到ResultSet裏的所有記錄,就應該使用while循環。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章