目錄
- 一、獲取資料庫連接
- 二、增刪改操作
- 三、查詢操作
一、獲取資料庫連接
首先知道連接資料庫的四個要素,這是連接資料庫必須的
這四個要素可以這樣形象的理解,資料庫驅動相當于一輛車,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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/252019.html
標籤:其他
上一篇:Java基礎27~使用JDBC+連接池+反射撰寫簡單的ORM框架
下一篇:Java中的集合類包括ArrayList、LinkedList、HashMap等,下列關于集合類描述錯誤的是(C)
