一、獲取數據庫連接
首先知道連接數據庫的四個要素,這是連接數據庫必須的
這四個要素可以這樣形象的理解,數據庫驅動相當於一輛車,URL地址相當於目的地,賬號密碼相當於車鑰匙,這樣才能去往數據庫
- 相應的數據庫驅動
- URL地址
- 賬號
- 密碼
//一、加載數據庫驅動
Class.forName("com.mysql.cj.jdbc.Driver");
//二、數據庫的URL地址
String url = "jdbc:mysql://127.0.0.1:3306/chat_db?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
//三、數據庫的賬號
String user = "root";
//四、數據庫的密碼
String password = "111";
//用驅動管理器獲取連接返回連接對象
Connection connection = DriverManager.getConnection(url,user,passworg);
至此數據庫就連接成功了,我們只要記住連接數據庫的四要素就好
二、增刪改操作
因爲增刪改沒有返回值,所以可以歸爲一類,下面給出操作步驟
- 獲取數據庫連接
- 預編譯SQL語句,並返回prepareStatement對象
- 填充預編譯SQL語句裏面的佔位符
- 執行
//步驟一:獲取數據庫連接
Connection connection = DriverManager.getConnection(url,user,passworg);
//要執行的SQL語句,關鍵部分用問號表示,比如說給Student表插入一條數據
String sql = "insert into student(id,name,sex) vaules(?,?,?)";
//步驟二:預編譯SQL語句,並返回對象
PreparedStatement ps = connection.prepareStatement(sql);
//步驟三:填充佔位符
ps.setObject(1,2);
ps.setObject(2,"張三");
ps,setObject(3."男");
//步驟四:執行
ps.execute();
以上就是一套最簡單的插入語句,我們可以將以上代碼提取出來,編寫一個通用的增刪改操作
我們需要將什麼參數傳入該方法呢?
SQL語句、SQL語句裏面的佔位符
但是佔位符的個數是不確定的,怎麼確定參數的個數呢?這裏就用到了可變參數的形參
public void update(String sql, Object...args){
//獲取數據庫連接
Connection connection = DriverManager.getConnection(url,user,passworg);
//傳入形參SQL,預編譯SQL語句,返回對象
PreparedStatement ps = connection.prepareStatement(sql);
//填充佔位符,一次傳入形參
for (int i = 0; i < args.length; i++) {
ps.setObject(i + 1, args[i]);
}
//執行
ps.execute();
}
三、查詢操作
查詢單列出來的原因是,會返回結果,我們要想辦法拿到數據
ResultSet 返回的實際上就是一張數據表。有一個指針指向數據表的第一條記錄的前面。
//獲取數據庫連接
Connection connection = DriverManager.getConnection(url,user,passworg);
//查詢學生表id等於幾的一條數據
String sql = "select * from student where id = ?";
//預編譯SQL語句,並返回prepareStatement對象
PreparedStatement ps = connection.prepareStatement(sql);
//執行查詢,返回結果(其實結果已經在這個結果集裏了,現在只考慮怎麼用這些數據就行了)
ResultSet set = ps.executeQuery();
//用while循環取數據,如果next()有下一條數據,就進入循環,一列一列的獲取值
while (set.next()){
int id = set.getInt(stu_id);
String name = set.getString(stu_name);
String sex = set.getString(stu_sex);
}