1. 程式人生 > 資料庫 >簡單的MySQL資料庫demo

簡單的MySQL資料庫demo

- A:DML(增刪改)語句的簡單Demo

        Statement statement = null;
        Connection conn = null;
        try {
            //1 匯入驅動jar包
            //2 註冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //3 獲取資料庫連線物件
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bocai", "root","root");
            //4 定義sql語句
            String sql = "update user set username = '菠菜飯糰' where id = 3";
            //獲取執行sql的物件
            statement = conn.createStatement();
            int i = statement.executeUpdate(sql);     
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
           //釋放資源
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
  • 資料庫物件
  • 1.DriverManager:管理 JDBC 驅動程式的服務物件。
  • 2.Connection :資料庫連線物件
  • 3.Statement: 執行靜態SQL 語句物件,會導致SQL注入
    • int executeUpdate(String sql): 執行DML語句(增刪改),DDL語句(與資料庫和表相關,不常用),返回值為該條sql語句執行後影響的行數
      
    • ResultSet executeQuery(String sql)  : 執行DQL語句(查詢語句),返回值為一個結果集物件
      
  • 4.ResultSet:資料庫結果集物件(資料表),具有一個當前資料行的游標,可
  • 5.PreparedStatement
    :預編譯的 SQL 語句物件(動態

Class.forName("com.mysql.jdbc.Driver")中是通過靜態程式碼塊註冊驅動的,原始碼如下:

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }
    //靜態程式碼塊在類載入時呼叫,並且只調用一次。
    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

驅動jar包5.0版本後可以不寫Class.forName("com.mysql.jdbc.Driver");jar包已經寫在檔案中
在這裡插入圖片描述

- A:DQL(查詢)語句的簡單Demo

{
        Statement statement = null;
        Connection conn = null;
        ResultSet rs = null;
        try {
            //1 匯入驅動jar包
            //2 註冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //3 獲取資料庫連線物件
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bocai", "root","root");
            //4 定義sql語句
            String sql = "select * from user";
            //獲取執行sql的物件
            statement = conn.createStatement();
            rs = statement.executeQuery(sql);
            //判斷結果集是否有資料
            while(rs.next()){
               int id =  rs.getInt("id");
               String username =  rs.getString("username");
               String password =  rs.getString("password");
               System.out.println(id+"---"+username+"---"+password);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            //釋放資源
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }

查詢結果如下
在這裡插入圖片描述