package jdbc;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Scanner;/**
* 练习: 输入老师的姓名, 查询该老师的姓名, 年龄, 薪资, 职称
*/public class JDBCDemo6PM {
public static void main(String[] args) {
try (Connection connection = DBUtil.getConnection();){
// 创建执行SQL语句对象
Statement statement = connection.createStatement();// 接收用户输入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入老师姓名:");
String name = scanner.nextLine();
String sql="SELECT name,age,salary,title FROM teacher WHERE name='"+name+"'";// 执行SQL语句
ResultSet rs = statement.executeQuery(sql);// 获取查询结果while(rs.next()){
int age = rs.getInt("age");int salary = rs.getInt("salary");
String title = rs.getString("title");
System.out.println(name+","+age+","+salary+","+title);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
4.2 练习
package jdbc;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/**
* 查询每个老师所带班级各有多少人?列出老师的姓名, 班级名称, 班级人数
*
* -- 关联查询
* SELECT t.name,c.name,COUNT(*) number
* FROM teacher t,class c, student s
* WHERE t.id = c.teacher_id
* AND c.id = s.class_id
* GROUP BY t.name,c.name;
*
* -- 内连接
* SELECT t.name,c.name,COUNT(*) number
* FROM teacher t
* JOIN class c ON t.id = c.teacher_id
* JOIN student s ON c.id = s.class_id
* GROUP BY t.name,c.name;
*/public class JDBCDemo7PM {
public static void main(String[] args) {
try (Connection connection = DBUtil.getConnection();){
// 创建执行SQL语句的对象
Statement statement = connection.createStatement();
String sql="SELECT t.name,c.name,COUNT(*) number "+"FROM teacher t "+"JOIN class c ON t.id = c.teacher_id "+"JOIN student s ON c.id = s.class_id "+"GROUP BY t.name,c.name;";
ResultSet rs = statement.executeQuery(sql);// 获取结果while(rs.next()){
String tname = rs.getString("t.name");
String cname = rs.getString("c.name");int number = rs.getInt("number");
System.out.println(tname+","+cname+","+number);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
/*
练习:
1.查看王克晶老师所带班级的信息, 列出老师的姓名,老师性别,班级名称,所在楼层
2.查看1年级1班共有多少人?
*/
4.3 练习
packagejdbc;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/**
* 1.查看王克晶老师所带班级的信息, 列出老师的姓名,老师性别,班级名称,所在楼层
* SELECT t.name,t.gender,c.name,c.floor
* FROM teacher t
* JOIN class c ON t.id = c.teacher_id
* WHERE t.name='王克晶';
*/publicclassJDBCTest1{publicstaticvoidmain(String[] args){try(Connection connection =DBUtil.getConnection();){Statement statement = connection.createStatement();String sql ="SELECT t.name,t.gender,c.name,c.floor "+"FROM teacher t "+"JOIN class c ON t.id = c.teacher_id "+"WHERE t.name='王克晶'";ResultSet rs = statement.executeQuery(sql);// 获取查询结果while(rs.next()){String tname = rs.getString("t.name");String gender = rs.getString("t.gender");String cname = rs.getString("c.name");int floor = rs.getInt("floor");System.out.println(tname+","+gender+","+cname+","+floor);}}catch(SQLException throwables){
throwables.printStackTrace();}}}
4.4 练习
packagejdbc;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/**
* 2.查看1年级1班共有多少人?
* SELECT c.name,COUNT(*) number
* FROM class c
* JOIN student s ON s.class_id = c.id
* WHERE c.name='1年级1班';
*/publicclassJDBCTest2{publicstaticvoidmain(String[] args){try(Connection connection =DBUtil.getConnection();){Statement statement = connection.createStatement();String sql ="SELECT c.name,COUNT(*) number "+"FROM class c "+"JOIN student s ON s.class_id = c.id "+"WHERE c.name='1年级1班';";ResultSet rs = statement.executeQuery(sql);while(rs.next()){String cname = rs.getString("c.name");int number = rs.getInt("number");System.out.println(cname+"人数:"+number);}}catch(SQLException throwables){
throwables.printStackTrace();}}}