package chp07;
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classJDBC_Test {//創建靜態全局變量
staticConnection conn;staticStatement st;public static voidmain(String[] args) {
insert();//插入添加記錄
update(); //更新記錄數據
delete(); //刪除記錄
query(); //查詢記錄并顯示
}/*插入數據記錄,并輸出插入的數據記錄數*/
public static voidinsert() {
conn= getConnection(); //首先要獲取連接,即連接到數據庫
try{
String sql= "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"
+ " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')"; //插入數據的sql語句
st= (Statement) conn.createStatement(); //創建用于執行靜態sql語句的Statement對象
int count = st.executeUpdate(sql); //執行插入操作的sql語句,并返回插入數據的個數
System.out.println("向staff表中插入 " + count + " 條數據"); //輸出插入操作的處理結果
conn.close();//關閉數據庫連接
}catch(SQLException e) {
System.out.println("插入數據失敗" +e.getMessage());
}
}/*更新符合要求的記錄,并返回更新的記錄數目*/
public static voidupdate() {
conn= getConnection(); //同樣先要獲取連接,即連接到數據庫
try{
String sql= "update staff set wage='2200' where name = 'lucy'";//更新數據的sql語句
st= (Statement) conn.createStatement(); //創建用于執行靜態sql語句的Statement對象,st屬局部變量
int count = st.executeUpdate(sql);//執行更新操作的sql語句,返回更新數據的個數
System.out.println("staff表中更新 " + count + " 條數據"); //輸出更新操作的處理結果
conn.close();//關閉數據庫連接
}catch(SQLException e) {
System.out.println("更新數據失敗");
}
}/*查詢數據庫,輸出符合要求的記錄的情況*/
public static voidquery() {
conn= getConnection(); //同樣先要獲取連接,即連接到數據庫
try{
String sql= "select * from staff"; //查詢數據的sql語句
st = (Statement) conn.createStatement(); //創建用于執行靜態sql語句的Statement對象,st屬局部變量
ResultSet rs= st.executeQuery(sql); //執行sql查詢語句,返回查詢數據的結果集
System.out.println("最后的查詢結果為:");while (rs.next()) { //判斷是否還有下一個數據//根據字段名獲取相應的值
String name = rs.getString("name");int age = rs.getInt("age");
String sex= rs.getString("sex");
String address= rs.getString("address");
String depart= rs.getString("depart");
String worklen= rs.getString("worklen");
String wage= rs.getString("wage");//輸出查到的記錄的各個字段的值
System.out.println(name + " " + age + " " + sex + " " +address+ " " + depart + " " + worklen + " " +wage);
}
conn.close();//關閉數據庫連接
}catch(SQLException e) {
System.out.println("查詢數據失敗");
}
}/*刪除符合要求的記錄,輸出情況*/
public static voiddelete() {
conn= getConnection(); //同樣先要獲取連接,即連接到數據庫
try{
String sql= "delete from staff where name = 'lili'";//刪除數據的sql語句
st = (Statement) conn.createStatement(); //創建用于執行靜態sql語句的Statement對象,st屬局部變量
int count = st.executeUpdate(sql);//執行sql刪除語句,返回刪除數據的數量
System.out.println("staff表中刪除 " + count + " 條數據\n"); //輸出刪除操作的處理結果
conn.close();//關閉數據庫連接
}catch(SQLException e) {
System.out.println("刪除數據失敗");
}
}/*獲取數據庫連接的函數*/
public staticConnection getConnection() {
Connection con= null; //創建用于連接數據庫的Connection對象
try{
Class.forName("com.mysql.jdbc.Driver");//加載Mysql數據驅動
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/myuser", "root", "root");//創建數據連接
}catch(Exception e) {
System.out.println("數據庫連接失敗" +e.getMessage());
}return con; //返回所建立的數據庫連接
}
}