MySQL-JDBC的一些練習
阿新 • • 發佈:2018-10-31
首先,我的表為
1.查詢女性,成績80以上的學生數量
package demoooo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /* * 查詢女性,成績80以上的學生數量 */ public class StudentDemo { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 為了練習都所以寫了出來 Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/stab", "root", "root"); PreparedStatement pst = con .prepareStatement("SELECT * FROM `student`;"); ResultSet rs = pst.executeQuery(); // 定義用來檢測數量的指標 int index = 0; while (rs.next()) { if (rs.getString("sex").equals("女") && rs.getInt("score") > 80) { index++; } } System.out.println("女性,成績80以上的學生數量為"+index); } }
輸出結果:
女性,成績80以上的學生數量為0
2.將姓周的男同學的的成績改為100
package demoooo; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import JDBCUtils.Utils; /* * 將姓周的男同學的的成績改為100 */ public class demo2 { public static void main(String[] args) throws SQLException { // 直接呼叫我寫的工具類了 Connection con = Utils.getConnection(); Statement stat = con.createStatement(); // 返回受到影響的行數 int row = stat.executeUpdate("update student set score=100 where id=3"); System.out.println(row); } }
輸出結果:
1
3.查詢成績大於60的女性,顯示姓名,成績
package demoooo; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import JDBCUtils.Utils; /* * 查詢成績大於60的女性,顯示姓名,成績 */ public class Demo3 { public static void main(String[] args) throws SQLException { Connection con = Utils.getConnection(); PreparedStatement pst = con .prepareStatement("SELECT * FROM `student`;"); ResultSet rs = pst.executeQuery(); while (rs.next()) { if (rs.getInt("score") > 60 && rs.getString("sex").equals("女")) { System.out.println("姓名:" + rs.getString("name") + " 成績:" + rs.getInt("score")); } } } }
輸出結果:
姓名:李少榮 成績:80
姓名:張秀花 成績:68
4.分別統計所有男同學的平均分,所有女同學的平均分及總平均分
package demoooo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import JDBCUtils.Utils;
/*
* 分別統計所有男同學的平均分,所有女同學的平均分及總平均分
*/
public class Demo4 {
public static void main(String[] args) throws SQLException {
Connection con = Utils.getConnection();
PreparedStatement pst = con
.prepareStatement("SELECT * FROM `student`;");
ResultSet rs = pst.executeQuery();
int boyavg = 0, grilavg = 0, avg = 0;
while (rs.next()) {
if (rs.getString("sex").equals("男")) {
boyavg = rs.getInt("score") + boyavg;
}
if (rs.getString("sex").equals("女")) {
grilavg = rs.getInt("score") + grilavg;
}
avg = rs.getInt("score") + avg;
}
System.out.println("男同學平均分:" + boyavg / 3);
System.out.println("女同學平均分:" + grilavg / 4);
System.out.println("所有同學平均分:" + avg / 7);
}
}
輸出結果:
男同學平均分:69
女同學平均分:63
所有同學平均分:65