MySQL-07——JDBC、Properties、DBCP、Preparedstatement

伊顰伊笑發表於2020-10-17

MySQL-07——JDBC、Properties、DBCP、Preparedstatement

1、JDBC

  • JDBC概念:
    Java DataBase Connectivity Java資料庫連線,JDBC實際上就是Java中的一套和資料庫互動的API (Application Program Interface 應用程式程式設計介面)

  • 為什麼使用JDBC:
    因為Java程式設計師需要連線多種資料庫(Oracle、 MySQL…)為了避免連線每一種資料庫都學習一套新的api, Sun公司提出了JDBC介面,各個資料庫廠商根據此介面寫實現類(驅動) ,這樣Java程式設計師只需要掌握JDBC介面中的方法呼叫就可以連線任何資料庫。
    如何使用JDBC:
    1.建立一個Maven程式。
    2.去Maven私服搜尋mysql的驅動jar包

2、Properties配置檔案

//建立讀取配置檔案的物件
Properties prop=new Properties();

//通過反射的方式得到檔案輸入流
InputStream ips = Demo02.class.getClassLoader().getResourceAsStream("jdbc.properties");

//把流交給上面的物件
prop.load(ips);

//讀取資料
String name=prop.getProperty("name");
String age=prop.getProperty("age");
System.out.println(name+":"+age);

//關閉流
ips.close();

3、DBCP

  • DBCP概念:
    DataBase Connection Pool :資料庫連線池

//建立資料來源物件
BasicDataSource ds=new BasicDataSource();

//設定資料庫連線資訊
ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/newdb3?serverTimezone=UTC");
ds.setUsername("root");
ds.setPassword(",,,Gin");

//設定資料庫初始連線數量
ds.setInitialSize(3);

//設定最大連線數量
ds.setMaxTotal(5);
Connection conn=ds.getConnection();
System.out.println(conn);

4、Preparedstatement

  • 預編譯的SQL執行物件
  • 好處:
    1.防止SQL隱碼攻擊(因為在建立SQL執行物件時就已經把sQL語句的邏輯鎖死,不會被使用者所寫的內容更改)
    2.程式碼結構整齊不易出錯
    如果SQL語句中沒有變數使用Statement,如果有變數就使用PreparedStatement

相關文章