今天要來練習利用java程式碼寫入資料
這是今天新增的程式碼,一個叫做insertData的Method,他可以向我們的student_information新增一筆資料(number, name, gender, age)。
public static void insertData(int number, String name, String gender, int age) {
String insertSQL = "INSERT INTO student_information (number, name, gender, age) VALUES (?, ?, ?, ?)";
try (Connection connection = DriverManager.getConnection(JDBC_url, JDBC_user, JDBC_password);
PreparedStatement preparedStatement = connection.prepareStatement(insertSQL)) {
preparedStatement.setInt(1, number);
preparedStatement.setString(2, name);
preparedStatement.setString(3, gender );
preparedStatement.setInt(4, age);
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
System.out.println("Insert successful! " + rowsAffected + " row(s) added.");
} else {
System.out.println("Insert failed.");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
首先我們要先設定一個字串當作PreparedStatement要用的SQL語法,就是前幾天分享過的插入資料"insert into"
"INSERT INTO student_information (number, name, gender, age) VALUES (?, ?, ?, ?)"
之後用preparedStatement.set這個函數來設定每個"?"所代表的值,每個值的格式也要和table要求的一樣,所以要注意是setInt還是setString,而程式碼其中的這行則代表了執行preparedstatement的程式,並return受影響的行數,新增1筆資料就是return 1,2筆就是return 2。
來測試一下~~
這是我剛剛隨便打的一筆資料,顯示了輸入成功,我們去table裡看看
可以看到有成功寫入囉~~~
以上就是一次新增一筆資料的方法,如果是刪除一筆資料則是需要把preparedstatement的SQL語法改成這樣,後面的where是鎖定特定資料的方法
String deleteSQL = "DELETE FROM student_information WHERE number = ?";
之後Method內用這串程式設定想刪除的number
preparedStatement.setInt(1, denumber);
number:666的那筆資料就不見啦!