package cn.jt.com;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.NumberFormat;
import java.util.Scanner;
public class query {
//查询选课信息
public static void menu4() throws Exception {
System.out.println("=============选课信息查询=============");
System.out.println(" 1.总选课信息 ");
System.out.println(" 2.学生总成绩 ");
System.out.println(" 3.学生平均成绩 ");
System.out.println(" 4.课程平均成绩 ");
System.out.println(" 5.选课率及最喜欢课程 ");
System.out.println(" 6.退出 ");
System.out.println("请输入操作序号:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
while (true) {
switch (i) {
case 1:
query1();
break ;
case 2:
query2();
break ;
case 3:
query3();
break ;
case 4:
query4();
break ;
case 5:
query5();
break ;
case 6:
choose.menu3();
break ;
default:
System.out.println("输入的信息错误,请重新输入!");
menu4();
}
break;
}
}
//查询总选课
public static void query1() throws Exception {
//1.创建连接对象connection对象
Connection con = JDBCUtils.getConnection();
// 2、创建执行sql语句的对象 statement 对象
Statement st = con.createStatement();
//3、执行sql语句
String sql = "SELECT * FROM choose";
//执行select的sql 语句,调用 statement excuteQuery()
ResultSet rs = st.executeQuery(sql);
//获取执行select语句的结果集合,ResultSet集合
//处理结果,在控制台输出结果。 for while
//每一个元素看作一个对象。封装到对象。
while (rs.next()) {
int s_id = rs.getInt("s_id");//获取集合第1行,s_id 这一列的值
int c_id = rs.getInt("c_id");//获取集合第1行,c_id 这一列的值
int score = rs.getInt("score");//获取集合第1行,score 这一列的值
System.out.println(s_id + "==" + c_id + "==" + score );
}
//资源释放.......
JDBCUtils.close(null, st, con);
menu4();
}
//查询选课学生总成绩
public static void query2() throws Exception {
//1.创建连接对象connection对象
Connection con = JDBCUtils.getConnection();
// 2、创建执行sql语句的对象 statement 对象
Statement st = con.createStatement();
//3、执行sql语句
String sql ="SELECT stu.s_id ,sum(choose.score) from stu left join choose on choose.s_id=stu.s_id group by stu.s_id";
//执行select的sql 语句,调用 statement excuteQuery()
ResultSet rs = st.executeQuery(sql);
//获取执行select语句的结果集合,ResultSet集合
//处理结果,在控制台输出结果。 for while
//每一个元素看作一个对象。封装到对象。
while (rs.next()) {
int s_id = rs.getInt("s_id");//获取集合第1行的值
int sum = rs.getInt("sum(choose.score)");//获取集合第1行的值
System.out.println(s_id + "=的总成绩为=" + sum );
}
//资源释放.......
JDBCUtils.close(null, st, con);
menu4();
}
//查询学生的平均成绩
public static void query3() throws Exception {
//1.创建连接对象connection对象
Connection con = JDBCUtils.getConnection();
// 2、创建执行sql语句的对象 statement 对象
Statement st = con.createStatement();
//3、执行sql语句
String sql ="SELECT s_id, AVG(score) FROM choose GROUP BY s_id";
//执行select的sql 语句,调用 statement excuteQuery()
ResultSet rs = st.executeQuery(sql);
//获取执行select语句的结果集合,ResultSet集合
//处理结果,在控制台输出结果。 for while
//每一个元素看作一个对象。封装到对象。
while (rs.next()) {
int s_id = rs.getInt("s_id");//获取集合第1行的值
int avg = rs.getInt("avg(score)");//获取集合第1行的值
System.out.println(s_id + "=的平均成绩为=" + avg );
}
//资源释放.......
JDBCUtils.close(null, st, con);
menu4();
}
//查询课程的平均成绩
public static void query4() throws Exception {
//1.创建连接对象connection对象
Connection con = JDBCUtils.getConnection();
// 2、创建执行sql语句的对象 statement 对象
Statement st = con.createStatement();
//3、执行sql语句
String sql ="SELECT c_id,AVG(score) FROM choose GROUP BY c_id";
//执行select的sql 语句,调用 statement excuteQuery()
ResultSet rs = st.executeQuery(sql);
//获取执行select语句的结果集合,ResultSet集合
//处理结果,在控制台输出结果。 for while
//每一个元素看作一个对象。封装到对象。
while (rs.next()) {
int c_id = rs.getInt("c_id");//获取集合第1行的值
int avg = rs.getInt("avg(score)");//获取集合第1行的值
System.out.println(c_id + "=的平均成绩为=" + avg );
}
//资源释放.......
JDBCUtils.close(null, st, con);
menu4();
}
//查询选课率及最受欢迎的课程
public static void query5() throws Exception {
//1.创建连接对象connection对象
Connection con = JDBCUtils.getConnection();
// 2、创建执行sql语句的对象 statement 对象
Statement st = con.createStatement();
Statement st1 = con.createStatement();
Statement st2 = con.createStatement();
/*
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询的课程号");//查询某一门课程的选课率
int c_id = sc.nextInt();
*/
//3、执行sql语句
String sql ="select c_id ,count(s_id) from choose group by c_id ";
String sql2="SELECT c_id FROM ( SELECT c_id,COUNT(s_id) Snum FROM choose GROUP BY c_id) A WHERE Snum=(SELECT MAX(Snum) FROM( SELECT c_id,COUNT(s_id) Snum FROM choose GROUP BY c_id) A)";
//执行select的sql 语句,调用 statement excuteQuery()
ResultSet rs = st.executeQuery(sql);
//获取执行select语句的结果集合,ResultSet集合
//处理结果,在控制台输出结果。 for while
//每一个元素看作一个对象。封装到对象。
while (rs.next()) {
int c_id =rs.getInt("c_id");
int count = rs.getInt("count(s_id)");//获取集合第1行的值
String sql1="SELECT COUNT(*) FROM stu";
ResultSet rs1 = st1.executeQuery(sql1);
while (rs1.next()) {
int count1 = rs1.getInt("count(*)");//获取集合第1行的值
// 创建一个数值格式化对象
NumberFormat numberFormat = NumberFormat.getInstance();
// 设置精确到小数点后2位
numberFormat.setMaximumFractionDigits(2);
String result =
评论5