博客概要
简单创建学生表(tb_stu)和班级表(tb_grade)两张表,通过主外键实现,输入班级名查询,显示输出这个班级对应的所有学生信息。
实现效果: | 输入班级名查询,显示输出这个班级对应的所有学生信息。 |
---|---|
实现环境: | SQLyog + Idea2019 |
实现技术: | JAVA SE + 数据库知识 |
… | … |
实现步骤
1.SQLyog部分
1.1SQLyog创建表
学生表(tb_stu)
班级表(tb_grade)
1.2SQLyog创建主外键联系
表主外键关联
1.3录入数据
学生表(tb_stu)
班级表(tb_grade)
1.4SQLyog后台测试
测试代码
SELECT sname,ssex,sage,gname
FROM tb_stu,tb_grade
WHERE
tb_stu.`gid`=tb_grade.`gid` AND tb_grade.`gname` = 'java1'
测试结果
1.Idea2019部分
实现声明,本博文主要撰写表主外键查询操作,默认数据库连接可正常使用,如有不会的,请查阅以下博文
具体代码
/**
* 查询班级 -- 打印班里全部的学生
* 输入班级
*/
@Override
public void doFindGradeAllStu() {
try {
//键盘提示输入
System.out.print("输入查询班级名:");
String sg = in.next();
//获取数据库驱动+连接数据库
conn = db.getConn();
//准备sql语句
String sql = "SELECT sname,ssex,sage,gname FROM tb_stu,tb_grade WHERE tb_stu.`gid`=tb_grade.`gid` AND tb_grade.`gname`=? ";
//预编译
Object[] params = {sg};
//获取结果
rs = db.executeQuery(sql, params);
//处理结果
System.out.println("\n查询结果:");
while (rs.next()) {
System.out.println("*学生名:" + rs.getString("sname") + ",\t*学生性别:" + rs.getString("ssex") + ",\t*学生年龄:" + rs.getInt("sage") + "\t班级名:" + rs.getString("gname"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放数据库连接
db.closeResource(rs, pstm, conn);
}
}
运行结果