使用JDBC操作MySQL數據庫


一、JDBC簡介

   JDBC(Java DataBase Connectivity)是一種用於執行SQL語句的Java API,可以為多種關系數據庫提供統一的訪問,它由一組用Java語言編寫的類和接口組成。使用JDBC訪問數據庫的基本步驟如下:

    1、加載JDBC驅動程序

    2、建立數據庫連接

    3、創建操作數據庫SQL的對象

    4、執行語句並分析執行結果

    5、關閉連接

  在使用JDBC操作數據庫之前,我們需要先向項目中加入JDBC驅動文件,將其放到項目中的lib文件夾下即可。

  放入JDBC驅動文件(下)后,eclipse會自動將其加載到項目中(上)。

二、使用JDBC訪問MySQL數據庫

  我們在MySQL數據庫中建立了test庫,test庫中含有test表,表中的數據如下:

1、通過Statement對象執行靜態SQL語句

 1 package test;
 2 
 3 import java.sql.*;                                        //導入Java提供的數據庫操作包
 4 
 5 public class MySql {
 6     public static void main(String[] args) {
 7 
 8         String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai";  //數據庫連接地址,此處表示連接本機3306端口的MySQL數據庫里的test庫,使用上海時區
 9         Connection con;
10         Statement statement;
11         ResultSet rs;
12         int i;
13         String string;
14             
15         try {
16             Class.forName("com.mysql.cj.jdbc.Driver");                 //加載JDBC驅動程序
17             con = DriverManager.getConnection(url, "root", "root");         //建立與數據庫的連接,后兩個參數分別為賬號和密碼
18             statement = con.createStatement();                     //創建Statement對象
19                 
20             rs = statement.executeQuery("select * from test");            //執行sql查詢語句,返回結果集
21             System.out.println("查詢結果為:");
22             while(rs.next()) {                               //循環操作結果集
23                 string = rs.getString("id") + "——" + rs.getString("name");
24                 System.out.println(string);
25             }
26                 
27             i = statement.executeUpdate("insert into test value(4,'wxc')");    //執行sql更新語句,返回影響行數
28             System.out.println("影響行數為:" + i);
29                 
30             rs.close();                                   //關閉結果集
31             statement.close();                               //關閉Statement對象
32             con.close();                                  //關閉與數據庫的連接
33         } catch (Exception e) {
34             e.printStackTrace();
35         }
36     }
37 }

  執行結果如下:

2、通過PreparedStatement對象執行預編譯SQL語句

 1 public class MySql {                                    //大部分操作與執行靜態SQL語句類似,相同部分此處不再贅述
 3     public static void main(String[] args) {
 4 
 5         String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai";
 6         Connection con;
 7         String sql;
 8         PreparedStatement preparedStatement;
 9         ResultSet rs;
10         int i;
11         String string;
12             
13         try {
14             Class.forName("com.mysql.cj.jdbc.Driver");
15             con = DriverManager.getConnection(url, "root", "root");
16                 
17             sql = "select * from test where id = ?";              //編寫sql查詢語句,問號為占位符,之后會被參數取代
18             preparedStatement = con.prepareStatement(sql);          //創建PreparedStatement對象
19             preparedStatement.setString(1, "3");                //設置參數,第一個參數表示選擇第幾個占位符,第二個參數表示要輸入的值
20             rs = preparedStatement.executeQuery();
21             System.out.println("查詢結果為:");
22             if(rs.next()) {
23                 string = rs.getString("id") + "——" + rs.getString("name");
24                 System.out.println(string);
25             }
26                 
27             sql = "delete from test where id = ?";
28             preparedStatement = con.prepareStatement(sql);
29             preparedStatement.setString(1, "3");
30             i = preparedStatement.executeUpdate();
31             System.out.println("影響行數為:" + i);
32                 
33             rs.close();
34             preparedStatement.close();
35             con.close();
36         } catch (Exception e) {
37             e.printStackTrace();
38         }
39     }
40 }

  執行結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM