JDBC基本使用方法 JDBC固定步驟: 載入驅動 連接資料庫,代表資料庫 向資料庫發送SQL的對象Statement: CRUD 編寫SQL (根據業務, 不同的SQL) 執行SQL 遍歷結果集 關閉連接 補充: statement.executeQuery(); //執行查詢操作 state ...
JDBC基本使用方法
JDBC固定步驟:
載入驅動
String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT";
String username="root";
String password="123456";
Class.forName("com.mysql.cj.jdbc.Driver");//這裡不知道為什麼載入com.mysql.jdbc.Driver會報錯,有知道的大佬請留言
連接資料庫,代表資料庫
Connection connection = DriverManager.getConnection(url, username, password);
向資料庫發送SQL的對象Statement: CRUD
Statement statement = connection.createStatement();
編寫SQL (根據業務, 不同的SQL)
String str1="select * from users";
String str2="insert into users values (4,'趙六','145667','werwef.@eq',current_time) ,(5,'田七','53234','fsd@df',current_time)";
String str3="delete from users where id=5";
String str4="update users set password='987654' where id=4";
執行SQL
// int i = statement.executeUpdate(str2);
// int i = statement.executeUpdate(str3);
// int i = statement.executeUpdate(str4);
ResultSet resultSet = statement.executeQuery(str1);
遍歷結果集
while (resultSet.next()){
System.out.println("id:"+resultSet.getInt("id"));
System.out.println("name:"+resultSet.getString("name"));
System.out.println("password:"+resultSet.getString("password"));
System.out.println("email:"+resultSet.getString("email"));
System.out.println("birthday:"+resultSet.getString("birthday"));
}
關閉連接
resultSet.close();
statement.close();
connection.close();
補充:
-
statement.executeQuery(); //執行查詢操作
-
statement.executeUpdate(); //執行增刪改操作
-
resultset. beforeFirst(); // 移動到最前面
-
resu1tSet. afterlast(); //移動到最後面
-
resultset.next(); //移動到下一個數據
-
resultset. previous(); //移動到前一行
-
resu1tset. absolute(row); //移動到指定行
-
statement不安全使用prepareStatement 可以防SQL註入
以下是prepareStatement 的使用方法
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT";
String username="root";
String password="123456";
//載入驅動
Class.forName("com.mysql.cj.jdbc.Driver");
//連接資料庫
Connection connection = DriverManager.getConnection(url, username, password);
//編寫SQL
String str5="insert into users (id,name,password,email,birthday)values (?,?,?,?,?)";
//預編譯
PreparedStatement ps = connection.prepareStatement(str5);
ps.setInt(1,6); //給第一個占位符?賦值6
ps.setString(2,"胡八"); //給第二個占位符?賦值"胡八"
ps.setString(3,"1223235"); //給第三個占位符?賦值”1223235“
ps.setString(4,"ew@12"); //給第四個占位符?賦值"ew@12"
ps.setDate(5,new Date(new java.util.Date().getTime()));
//給第五個占位符?賦值2020-05-19
//執行
int i = ps.executeUpdate();
if (i>0){
System.out.println("插入成功");
}
//關閉連接
ps.close();
connection.close();
}