package com.wgh.dao;
import com.wgh.actionForm.StudentForm;
import com.wgh.core.ChStr;
import com.wgh.core.ConnDB;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.text.NumberFormat;
public class StudentDAO {
private ConnDB conn=new ConnDB();
private ChStr chStr=new ChStr();
//考生身份验证
public int checkStudent(StudentForm studentForm) {
int flag = 1;
String sql = "SELECT * FROM tb_student where ID='" +
studentForm.getID()+ "'";
ResultSet rs = conn.executeQuery(sql);
try {
if (rs.next()) {
String pwd = studentForm.getPwd();
if (pwd.equals(rs.getString(3))) {
rs.last();
int rowSum = rs.getRow(); //获取记录总数
rs.first();
if (rowSum!=1) {
flag = 2;
System.out.print("获取row的值:" + sql + rowSum);
}
} else {
flag = 2;
}
}else{
flag = 2;
}
} catch (Exception ex) {
flag = 2;
System.out.println(ex.getMessage());
}
return flag;
}
//添加数据
public String insert(StudentForm s) {
String sql1="SELECT * FROM tb_student WHERE cardNo='"+s.getCardNo()+"'";
ResultSet rs = conn.executeQuery(sql1); //执行SQL查询语句
String sql = "";
String falg = "miss"; //用于记录返回信息的变量
String ID="";
try {
if (rs.next()) { //假如存在记录
falg="re"; //表示考生信息已经注册
} else {
/*****************自动生成准考证号***********************************************/
String sql_max="SELECT max(ID) FROM tb_student";
ResultSet rs_max=conn.executeQuery(sql_max); //查询最大的准考证号
java.util.Date date=new java.util.Date(); //实例化java.util.Date()类
String newTime=new SimpleDateFormat("yyyyMMdd").format(date); //格式化当前日期
if(rs_max.next()){
String max_ID=rs_max.getString(1); //获取最大的准考证号
int newId=Integer.parseInt(max_ID.substring(10,16))+1;//取出最大准考证号中的数字编号+1
String no=chStr.formatNO(newId,6); //将生成的编号格式化为6位
ID="CN"+newTime+no; //组合完整的准考证号
}else{ //当第一个考生注册时
ID="CN"+newTime+"000001"; //生成第一个准考证号
}
/********************************************************************************/
sql = "INSERT INTO tb_student (ID,name,pwd,sex,question,answer,profession,cardNo) values('" +
ID+ "','" +s.getName() +"','"+s.getPwd()+"','"+s.getSex()+"','"+s.getQuestion()+
"','"+s.getAnswer()+"','"+s.getProfession()+"','"+s.getCardNo()+"')";
int ret= conn.executeUpdate(sql); //保存考生注册信息
if(ret==0){
falg="miss"; //表示考生注册失败
}else{
falg="恭喜您,注册成功!\\r请记住您的准考证号:"+ID; //返回生成的准考证号
}
conn.close(); //关闭数据库连接
}
} catch (Exception e) {
falg="miss";
System.out.println("添加考生信息时的错误信息:"+e.getMessage()); //输出错误提示信息到控制台
}
return falg;
}
//查询方法
public List query(String id) {
List studentList = new ArrayList();
StudentForm studentForm1 = null;
String sql="";
if(id==null ||id.equals("")){
sql = "SELECT * FROM tb_student ORDER BY joinTime DESC";
}else{
sql = "SELECT * FROM tb_student WHERE id='" +id+ "'";
}
ResultSet rs = conn.executeQuery(sql);
try {
while (rs.next()) {
studentForm1 = new StudentForm();
studentForm1.setID(rs.getString(1));
studentForm1.setName(rs.getString(2));
studentForm1.setPwd(rs.getString(3));
studentForm1.setSex(rs.getString(4));
studentForm1.setJoinTime(java.text.DateFormat.getDateTimeInstance().parse(rs.getString(5)));
studentForm1.setQuestion(rs.getString(6));
studentForm1.setAnswer(rs.getString(7));
studentForm1.setProfession(rs.getString(8));
studentForm1.setCardNo(rs.getString(9));
studentList.add(studentForm1);
}
} catch (Exception ex) {}
return studentList;
}
//修改考生资料
public int update(StudentForm s){
String sql="UPDATE tb_student SET pwd='"+s.getPwd()+"',sex='"+s.getSex()+"',question='"+s.getQuestion()+"',answer='"+s.getAnswer()+"',profession='"+s.getProfession()+"' where ID='"+s.getID()+"'";
int ret=conn.executeUpdate(sql);
System.out.println("修改考生资料时的SQL:"+sql);
conn.close();
return ret;
}
//找回密码(第一步)
public StudentForm seekPwd1(StudentForm s){
String sql="SELECT * FROM tb_student WHERE ID='"+s.getID()+"'";
ResultSet rs = conn.executeQuery(sql);
try {
if (rs.next()) {
s.setID(rs.getString(1));
s.setQuestion(rs.getString(6));
}else{
s.setID("");
}
}catch(Exception e){
System.out.println("找回密码(第一步)出现的错误信息:"+e.getMessage());
}
return s;
}
// 找回密码(第二步)
public StudentForm seekPwd2(StudentForm s){
String sql="SELECT * FROM tb_student WHERE ID='"+s.getID()+"'";
System.out.println("SQL"+sql);
ResultSet rs = conn.executeQuery(sql);
try {
if (rs.next()) {
String ID=rs.getString(1);
String pwd=rs.getString(3);
String answer=rs.getString(7);
if(answer.equals(s.getAnswer())){
s.setID(ID);
s.setPwd(pwd);
System.out.println("密码:"+pwd);
}else{
s.setID("");
}
}
}catch(Exception e){
System.out.println("找回密码(第二步)出现的错误信息:"+e.getMessage());
}
return s;
}
// 删除数据
public int delete(StudentForm studentForm) {
int flag=0;
String[] delId=studentForm.getDelIdArray();
if (delId.length>0){
String id="'";
for(int i=0;i<delId.length;i++){
id=id+delId[i]+"','";
}
id=id.substring(0,id.length()-2);
String sql = "DELETE FROM tb_student where id in (" + id +")";
System.out.println("删除时的SQL:"+sql);
flag = conn.executeUpdate(sql);
conn.close();
}else{
flag=0;
}
return flag;
}
}
【网上在线考试系统】是一种基于Web的教育技术应用,它允许学生在互联网上进行自我测试或正式考试。这个系统由【jsp】(JavaServer Pages)开发,这是一种动态网页技术,结合了HTML、Java代码和脚本语言,用于生成交互式、数据驱动的网页。系统采用了【Struts 1.2】框架,这是一个MVC(Model-View-Controller)架构的开源框架,用于构建企业级Java Web应用程序。Struts 1.2 提供了良好的结构化和可维护性,帮助开发者更好地组织和管理代码。 在数据库方面,该系统依赖于【SQL 2000】,这是微软推出的一款关系型数据库管理系统,广泛应用于存储、管理和检索数据。SQL Server 2000支持SQL查询语言,允许开发者编写复杂的数据操作和分析语句,确保系统的数据处理能力和稳定性。 系统的核心功能可能包括: 1. **用户管理**:允许学生注册、登录,可能还包括教师或管理员角色,有权限创建、编辑和管理考试。 2. **考试创建与发布**:教师可以上传题目,设定考试时间、分数权重、答题时间等参数,然后发布到平台上。 3. **试题库管理**:系统应有一个存储各种类型试题的库,便于教师选择和组合题目。 4. **在线答题**:学生在规定时间内通过Web浏览器参与考试,系统记录答题情况。 5. **自动评分**:系统自动评估学生的答案,并计算总分。 6. **成绩查询**:学生可以在考试结束后查看自己的分数和答案解析。 7. **统计分析**:为教师提供学生表现的统计报告,以便评估教学效果。 文件【Database】可能包含了数据库的设计和脚本,比如表结构、初始化数据以及相关的SQL查询语句。这些文件是系统运行的基础,确保了数据的正确存储和检索。 文件【ExamOnline】可能包含了项目的源代码,包括JSP页面、Struts配置文件、JavaBeans组件以及任何其他的业务逻辑代码。开发者可以查看这些代码来理解系统的实现细节,或者进行定制和扩展。 在开发和维护这样的系统时,开发者需要熟悉Java、JSP、Servlet、Struts 1.2、SQL等相关技术,还需要掌握Web安全、用户体验设计和数据库优化等方面的知识。此外,良好的项目管理和团队协作能力也是必不可少的,因为大型软件项目通常涉及到多人协作和复杂的版本控制。
- 1
- 2
- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- 粉丝: 9
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械手机器人含设计文档搬运机械手及其控制系统设计
- 翻译文档Na2B407对铁还原条件下AZ31和AZ91镁合金的影响(有出处)中英文翻译
- 机械手机器人含设计文档臂部采用凸轮的工业机械手设计
- 翻译文档参数控制型腔布局设计系统有出处中英文翻译
- 机械手机器人含设计文档并联六自由度微动机器人机构设计
- 机械手机器人含设计文档车床上料机械手设计施天宇
- 机械手机器人含设计文档电动关节机械手
- 翻译文档多级下料问题的建模(有出处)中英文翻译
- 机械手机器人含设计文档电动关节机械手设计
- 机械手机器人含设计文档电动式关节型机器人机械手的结构设计与仿真
- 机械手机器人含设计文档多用途气动机器人结构设计
- 翻译文档国内外轿车覆盖件模具设计概况-中英文翻译
- 机械手机器人含设计文档高空作业机器人设计
- 机械手机器人含设计文档工业机器人的结构设计
- 机械手机器人含设计文档工业机械手毕业设计论文.rar
- 翻译文档基于PLC的注塑机控制系统的设计