1题解析 表没用原表,不过不影响效果
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Test {
public static void main(String[] args) {
try {//1.try
//2.forName
Class.forName("com.mysql.jdbc.Driver");
//3.获取cs
Connection cs = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool", "root", "root");
//4.创建sql 哪怕" "里 空着 也得写
String sql="select g.gradeName,count(*) from Student s,grade g where s.gradeId =g.gradeId group by g.gradeId";
//5.获取 ps
PreparedStatement ps =cs.prepareStatement(sql);
//6.根据情况是否 设置值
//ps.setObject(1, ""); 要不要这个 ,要几个 取决于上面sql语句中有没有问号,有几个问号 也就是查询条件
//7.获取rs
ResultSet rs = ps.executeQuery();
//8.遍历结果集
while (rs.next()) {
System.out.println(rs.getString(1)+"班级总人数为"+rs.getInt(2)+"人。");
}
}
catch (Exception e) {//9.处理异常
e.printStackTrace();
}finally{ //10.释放资源 如果想做这步 必须将cs ps rs 的声明 放到try外面
//释放资源
}
}
}
2.题解析
#1.查出工资最终的前5个员工 (没准备那么多数据,改成前5)
SELECT * FROM person ORDER BY `Wages` DESC LIMIT 0,5
#2.查询出男生与女生各自的总人数
SELECT COUNT(*) FROM person GROUP BY `Gender`;
#3.本题有误
#4.