package com.zdh.sms.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.zdh.sms.model.*;
public class AbstractDbOperate implements DbOperate {
// 根据考试参数得到此考试下的所有学生记录
public List<StudentScore> getStudentScore(Exam exam) {
Connection con = null;
PreparedStatement sm = null;
ResultSet rs = null;
try {
con = ConnectManager.getConnection();
StringBuilder sb = new StringBuilder();
sb
.append("SELECT testDB.*,b.userId,b.password,b.name,b.latestonline,b.schoolclass_id ");
sb
.append("FROM studentscore testDB LEFT JOIN iuser b ON testDB.iuser_id=b.id ");
sb.append("WHERE exam_id=" + exam.getId());
System.out.println(sb.toString());
sm = con.prepareStatement(sb.toString());
rs = sm.executeQuery();
List<StudentScore> list = new ArrayList<StudentScore>();
while (rs.next()) {
StudentScore studentScore = new StudentScore();
studentScore.setId(new Long(rs.getInt("id")));
studentScore.setExam(exam);
studentScore.setScore(rs.getFloat("score"));
{
Student stu = new Student();
stu.setId(new Long(rs.getLong("iuser_id")));
stu.setUserId(rs.getString("userid"));
stu.setPassword(rs.getString("password"));
stu.setName(rs.getString("name"));
stu.setLatestOnline(rs.getDate("latestOnline"));
{// 设置学生的班级属性
SchoolClass schoolClass = new SchoolClass();
schoolClass
.setId(new Long(rs.getInt("schoolclass_id")));
stu.setSchoolclass(schoolClass);
}
studentScore.setStudent(stu);
}
list.add(studentScore);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rs);
close(sm);
close(con);
}
return Collections.emptyList();
}
// 根据考试课程和考试班级得到考试。如果course为空表示取所有课程考试,同样,
// 如果schoolClass为空表示取所有班级的考试
public List<Exam> getExam(Course course, SchoolClass schoolClass) {
Connection con = null;
PreparedStatement sm = null;
ResultSet rs = null;
try {
con = ConnectManager.getConnection();
StringBuilder sb = new StringBuilder();
sb.append("SELECT testDB.*, ");
sb
.append("b.name schoolclass_name,b.grade_id schoolclass_grade_id, ");
sb.append("c.name course_name, ");
sb
.append("d.name iuser_name,d.userid iuser_userid,d.password iuser_password, d.latestonline iuser_latestonline ");
sb
.append("from exam testDB LEFT JOIN schoolclass b on testDB.schoolclass_id=b.id ");
sb.append("LEFT JOIN course c ON testDB.course_id =c.id ");
sb.append("LEFT JOIN iuser d ON testDB.iuser_id =d.id ");
if (course != null && schoolClass != null)
sb
.append("where testDB.course_id = " + course.getId()
+ " and testDB.schoolclass_id = "
+ schoolClass.getId());
else if (course == null && schoolClass != null)
sb.append("where testDB.schoolclass_id = "
+ schoolClass.getId());
else if (course != null && schoolClass == null)
sb.append("where testDB.course_id = " + course.getId());
System.out.println(sb.toString());
sm = con.prepareStatement(sb.toString());
rs = sm.executeQuery();
List<Exam> list = new ArrayList<Exam>();
while (rs.next()) {
Exam exam = new Exam();
// 将数据设置到实体类中
exam.setId(new Long(rs.getInt("id")));
exam.setName(rs.getString("name"));
exam.setDate(rs.getDate("date"));
{
SchoolClass o = new SchoolClass();
o.setId(new Long(rs.getInt("schoolclass_id")));
o.setName(rs.getString("schoolclass_name"));
Grade o2 = new Grade();
o2.setId(new Long(rs.getInt("schoolclass_grade_id")));
o.setGrade(o2);
exam.setSchoolClass(o);
}
{
Course o = new Course();
o.setId(new Long(rs.getInt("course_id")));
o.setName(rs.getString("course_name"));
exam.setCourse(o);
}
{
Teacher o = new Teacher();
o.setId(new Long(rs.getInt("iuser_id")));
o.setUserId(rs.getString("iuser_userid"));
o.setPassword(rs.getString("iuser_password"));
o.setName(rs.getString("iuser_name"));
o.setLatestOnline(rs.getDate("iuser_latestonline"));
exam.setTeacher(o);
}
list.add(exam);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rs);
close(sm);
close(con);
}
return Collections.emptyList();
}
// 修改用户记录
public boolean modifyUser(IUser user) {
Connection con = null;
PreparedStatement sm = null;
ResultSet rs = null;
try {
con = ConnectManager.getConnection();
String sql = "update iuser set userid=?,password=?,name=?,latestOnline=?,schoolclass_id=? where id=?";
sm = con.prepareStatement(sql);
sm.setString(1, user.getUserId());
sm.setString(2, user.getPassword());
sm.setString(3, user.getName());
Date latestOnline = user.getLatestOnline();
if (latestOnline != null) {
long dateValue = latestOnline.getTime();
sm.setDate(4, new java.sql.Date(dateValue));
}
sm.setInt(6, user.getId().intValue());
if (user instanceof Student) {
SchoolClass schoolClass = ((Student) user).getSchoolclass();
if (schoolClass == null)
sm.setNull(5, java.sql.Types.BIGINT);
else
sm.setInt(5, schoolClass.getId().intValue());
} else {
sm.setNull(5, java.sql.Types.BIGINT);
}
sm.executeUpdate();
// 如果是老师还要处理他的课程情况
if (user instanceof Teacher) {
con.setAutoCommit(false); // 禁止自动提交事务
sm.setNull(5, java.sql.Types.BIGINT);
sm.addBatch("delete from iuser_course where iuser_id="
+ user.getId());
Set<Course> set = ((Teacher) user).getCourses();
for (Course course : set)
sm.addBatch("insert into iuser_course values ("
+ user.getId() + "," + course.getId() + ")");
sm.executeBatch();
con.commit(); // 提交
}
} catch (SQLException e) {
e.printStackTrace();
// 如出现异常则回滚
try {
con.rollback();
} catch (Exception e2) {
e2.printStackTrace();
}
return false;
} finally {
close(rs);
close(sm);
close(con);
}
return true;
}
// 得到所有班级的记录
public List<SchoolClass> getAllSchoolClass() {
Connection con = null;
PreparedStatement sm = null;
ResultSet rs = null;
try {
con = ConnectManager.getConnection();
sm = con.prepareStatement("SELECT * from schoolclass");
rs = sm.executeQuery();
List<SchoolClass> list = new ArrayList<SchoolClass>();
while (rs.next()) {
SchoolClass schoolClass = new SchoolClass();
schoolClass.setId(new Long(rs.getInt("id")));
schoolClass.setName(rs.getString("name"));
// 设置年级属性
Grade grade = new Grade();
grade.setId(new Long(rs.getInt("grade_id")));
schoolClass.setGrade(grade);
list.add(schoolClass);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rs);
close(sm);
close(con);
}
return Collections.emptyList();
}
// 得到所有课程记录
public List<Course> getCourses() {
Connection con = null;
PreparedStatement sm = null;
ResultSet rs = null;
try {
con = ConnectManager.getConnection();
String sql = "SELECT * from course";
sm = con.prepareStatement(sql);
rs = sm.executeQuery();
List<Course> list = new ArrayList<Course>();
while (rs.next()) {
Course course = new Course();
course.setId(new Long(rs.getInt("id")));
course.setName(rs.getString("name"));
list.add(course);
}
return list;
} catch (SQLException e) {
e.printStac
没有合适的资源?快使用搜索试试~ 我知道了~
SMS.rar_eclipse swt_java 学生成绩管理系统_rcp_学生 eclipse_成绩管理 系统 eclipse
共226个文件
class:80个
gif:63个
java:59个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 82 浏览量
2022-09-14
16:23:13
上传
评论
收藏 1.58MB RAR 举报
温馨提示
学生成绩管理系统 eclipse rcp开发 swt技术
资源详情
资源评论
资源推荐
收起资源包目录
SMS.rar_eclipse swt_java 学生成绩管理系统_rcp_学生 eclipse_成绩管理 系统 eclipse (226个子文件)
splash.bmp 394KB
AbstractDbOperate.class 15KB
ModifyArchiveDialog.class 6KB
DBPreferencePage.class 6KB
User.class 5KB
SearchView.class 5KB
ScoreEditor.class 4KB
ArchiveEditorActionGroup.class 4KB
ArchiveEditor.class 4KB
UserInfoPage.class 3KB
ArchiveWizard.class 3KB
CourseComposite.class 3KB
LogonDialog.class 3KB
ApplicationActionBarAdvisor.class 3KB
DB.class 3KB
NavigatorView.class 3KB
ImagesContext.class 3KB
ArchiveEditorSorter.class 3KB
NavigatorView$MyDoubleClickListener.class 3KB
ApplicationWorkbenchWindowAdvisor.class 3KB
NavigatorEntry.class 3KB
MyActionGroup.class 2KB
ArchiveEditorActionGroup$AddAction.class 2KB
EditorPartAdapter.class 2KB
ArchiveEditor$TableViewerLabelProvider.class 2KB
SearchView$1.class 2KB
SchoolClassPage.class 2KB
SmsFactory.class 2KB
ArchiveEditorActionGroup$RemoveAction.class 2KB
Activator.class 2KB
UserTypePage.class 2KB
SmsUtil.class 2KB
ArchiveEditorActionGroup$ModifyAction.class 2KB
CourseDialog.class 2KB
Context.class 2KB
MyActionGroup$LogonAction.class 2KB
Exam.class 2KB
ConnectManager.class 2KB
CoursesPage.class 2KB
UserInfoPage$1.class 2KB
ArchiveEditorActionGroup$LastAction.class 2KB
ArchiveEditorActionGroup$NextAction.class 2KB
ArchiveEditorActionGroup$PrevAction.class 2KB
ArchiveEditorActionGroup$FirstAction.class 2KB
AbstractUser.class 1KB
Teacher.class 1KB
MyActionGroup$LogoffAction.class 1KB
ScoreEditor$TableViewerLabelProvider.class 1KB
StudentScore.class 1KB
NavigatorView$MyContentProvider.class 1KB
SchoolClass.class 1KB
DbOperate.class 1KB
CourseComposite$1.class 1KB
ScoreEditorInput.class 1KB
SmsPerspective.class 1KB
RootPreferencePage.class 1KB
CourseComposite$2.class 1KB
Application.class 1KB
ApplicationActionBarAdvisor$ScorePerspectiveAction.class 1KB
TableLabelProviderAdapter.class 1KB
ViewerSortSelectionListener.class 1KB
Grade.class 1KB
LabelProviderAdapter.class 1KB
NavigatorView$MyLableProvider.class 1KB
ArchiveEditorInput.class 994B
ApplicationWorkbenchAdvisor.class 983B
DBPreferencePage$1.class 975B
MyActionGroup$MyLogonListener.class 958B
SmsContentProvider.class 938B
Course.class 914B
testDB.class 884B
TreeContentProviderAdapter.class 855B
Constants.class 615B
Student.class 606B
ITreeEntry.class 589B
IUser.class 446B
QueryInfo.class 365B
SqlServerOperate.class 319B
OracleOperate.class 310B
MysqlOperate.class 307B
ILogoffListener.class 162B
.classpath 512B
animation3.gif 71KB
animation1.gif 69KB
animation5.gif 62KB
animation2.gif 52KB
animation4.gif 15KB
alt_about.gif 9KB
source.gif 8KB
copyinfo.gif 7KB
systemUserManager.gif 3KB
alt_window_32.gif 1KB
username.gif 1KB
author.gif 1KB
logUserInfo.gif 1KB
userManag.gif 1KB
sample.gif 983B
next.gif 882B
password.gif 835B
saveData.gif 639B
共 226 条
- 1
- 2
- 3
我虽横行却不霸道
- 粉丝: 72
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0