查询所有学生信息,年级信息以年级名称显示
一、DAO层搭建:
1.实体类:
Student
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
package com.myschool.entity;import java.io.Serializable;import java.util.Date;public class Student implements Serializable { private static final long serialVersionUID = 6439763802252472361L; //定义实体属性 private int studentNo; private String longinPwd; private String studentName; private int sex; private grade grade;//把年级对象作为属性 private String phone; private String address; private Date bornDate; private String email; private String identityCard; //封装 public int getStudentNo() { return studentNo; } public void setStudentNo(int studentNo) { this.studentNo = studentNo; } public String getLonginPwd() { return longinPwd; } public void setLonginPwd(String longinPwd) { this.longinPwd = longinPwd; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public grade getGrade() { return grade; } public void setGrade(grade grades) { this.grade = grades; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getBornDate() { return bornDate; } public void setBornDate(Date bornDate) { this.bornDate = bornDate; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getIdentityCard() { return identityCard; } public void setIdentityCard(String identityCard) { this.identityCard = identityCard; } //有参构造 public Student(int studentNo, String longinPwd, String studentName, int sex, grade gradeID, String phone, String address, Date bornDate, String email, String identityCard) { this.studentNo = studentNo; this.longinPwd = longinPwd; this.studentName = studentName; this.sex = sex; this.gradeID = gradeID; this.phone = phone; this.address = address; this.bornDate = bornDate; this.email = email; this.identityCard = identityCard; } //无参构造 public Student() { } |
Grade类:
package com.myschool.entity;
public class grade {
private int gradeid;
private String gradeName;
public int getGradeid() {
return gradeid;
}
public void setGradeid(int gradeid) {
this.gradeid = gradeid;
}
public String getGradeName() {
return gradeName;
}
public void setGradeName(String gradeName) {
this.gradeName = gradeName;
}
public grade(int gradeid, String gradeName) {
super();
this.gradeid = gradeid;
this.gradeName = gradeName;
}
public grade() {
super();
}
}
2.Daobase:
package com.myschool.dao;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class baseDao {
// 创建连接参数
private final static String DRIVER = "com.mysql.jdbc.Driver";
private final static String URL = "jdbc:mysql:///myschool";
private final static String USER_NAME = "root";
private final static String PASSWORD = "123";
Connection con = null;
PreparedStatement prestatement = null;
ResultSet rs = null;
// 获取连接
private Connection getConnection() {
try {
Class.forName(DRIVER);
if (con == null) {
con = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
}
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
// 增删改
public int executeUpdate(String sql, Object... obj) throws Exception {
// 获取连接
getConnection();
// 获取prepareStatement对象
prestatement = con.prepareStatement(sql);
// 循环添加参数
for (int i = 1; i <= obj.length; i++) {
prestatement.setObject(i, obj[i - 1]);
}
// 执行SQL语句
int count = prestatement.executeUpdate();
return count;
}
// 查
public ResultSet executeQuery(String sql, Object... obj) throws Exception {
// 获取连接
getConnection();
// 获取prepareStatement对象
prestatement = con.prepareStatement(sql);
// 循环添加参数
for (int i = 1; i <= obj.length; i++) {
prestatement.setObject(i, obj[i - 1]);
}
// 执行SQL语句
rs = prestatement.executeQuery();
return rs;
}
//回收资源
public void closeResouse() throws Exception
{
if (rs!=null) {
rs.close();
}
if (prestatement!=null) {
prestatement.close();
}
if (con!=null) {
con.close();
}
}
}
3.DAO接口:
package com.myschool.dao;
import java.util.List;
import com.myschool.entity.Student;
public interface IStudentDao {
/*
* 查询所有学生记录,年级名称
*/
public List<Student> Search() throws Exception;
}
4.DAO接口实现类:
package com.mychool.dao.impl;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.myschool.dao.IStudentDao;
import com.myschool.dao.baseDao;
import com.myschool.entity.Student;
import com.myschool.entity.grade;
public class IStudentDaoImpl extends baseDao implements IStudentDao {
@Override
public List<Student> Search() throws Exception {
//创建student对象泛型集合
List<Student> stus=new ArrayList<Student>();
String sql="Select studentName,GradeName from Student,grade where Grade.gradeid=Student.gradeid ";
//定义resultSet对象接收basedao的查询方法查出来的数据
ResultSet rSet=executeQuery(sql);
if (rSet!=null) {
while (rSet.next()) {
Student stu=new Student();
grade grade=new grade();//创建年级对象
// stu.setAddress(rSet.getString("address"));
// stu.setEmail(rSet.getString("email"));
// stu.setIdentityCard(rSet.getString("identityCard"));
// stu.setLonginPwd(rSet.getString("longinPwd"));
// stu.setPhone(rSet.getString("phone"));
// stu.setSex(rSet.getInt("sex"));
grade.setGradeName(rSet.getString("gradeName"));//给年级对象赋值
stu.setStudentName(rSet.getString("studentName"));//给学生对象赋值
stu.setGradeID(grade);
// stu.setStudentNo(rSet.getInt("StudentNo"));
// SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd");
// stu.setBornDate(sdFormat.parse(rSet.getString("bornDate")));
stus.add(stu);//将学生对象添加到对象集合中
}
}
//回收释放资源
closeResouse();
return stus;
}
}
为了简单明洁,部分属性不进行值查询
二、service层:
1.service接口:
package com.myschool.service;
import java.util.List;
import com.myschool.entity.Student;
public interface IService {
public List<Student> Search() throws Exception;
}
2.service接口实现类:
package com.mychool.service.Impl;
import java.util.List;
import com.mychool.dao.impl.IStudentDaoImpl;
import com.myschool.dao.IStudentDao;
import com.myschool.entity.Student;
import com.myschool.service.IService;
public class IServiceImpl implements IService{
IStudentDao isd=new IStudentDaoImpl();
@Override
public List<Student> Search() throws Exception {
return isd.Search();
}
}
三、UI层:
package com.myschool.ui;
import java.util.List;
import com.mychool.service.Impl.IServiceImpl;
import com.myschool.entity.Student;
import com.myschool.service.IService;
public class test {
public static void main(String[] args) throws Exception {
//创建service接口实现类的对象
IService isv=new IServiceImpl();
List<Student> lsList=isv.Search();
for (Student student : lsList) {
System.out.println(student.getStudentName()+"\t"+student.getGradeID().getGradeName());
}
}
}
DAO实现类写法:
package com.myschool.dao.impl;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.myschool.dao.BaseDao;
import com.myschool.dao.IGradeDao;
import com.myschool.entity.Grade;
import com.myschool.entity.Student;
public class IGradeDaoImpl extends BaseDao implements IGradeDao{
@Override
public Grade getStudentByGrade(String gradeName) throws Exception {
Grade grade=new Grade();
String sql="SELECT * FROM Student,Grade WHERE Student.GradeId=Grade.GradeId AND GradeName=?";
ResultSet rs = executeQuery(sql, gradeName);
if(rs!=null){
while (rs.next()) {
//获取年级信息
grade.setGradeName(rs.getString("gradeName"));
//获取学生信息
Student student=new Student();
student.setGradeId(rs.getInt("gradeId"));
student.setStudentName(rs.getString("StudentName"));
student.setStudentNo(rs.getInt("studentNo"));
//将查询出来的学生信息添加到集合当中
grade.getStulist().add(student);
}
}
return grade;
}
}

浙公网安备 33010602011771号