/*
* This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/).
*/
package ch07.database;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.*;
import javax.servlet.http.HttpSession;
import ch07.*;
import ch07.object.unit.*;
/**
* 针对问题信息的数据处理类
* @author ShenYK
* @version 1.0
*/
public class DQuestion extends DCommon
{
//随机获得该分类指定数目的题目
public Vector getRandomQuestions( String sUsername, String sCategoryId, int iNumber )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
ResultSet rs = null;
try
{
Vector vQuestions = new Vector();
stmt = conn.createStatement();
//执行SQL语句,找出所有可用的题目ID
String sQuery = "select * from question where category_id='" + sCategoryId
+ "' order by rand() limit 0," + iNumber;
rs = stmt.executeQuery( sQuery );
while ( rs.next() )
{
Question objQuestion = new Question(rs);
vQuestions.add( objQuestion );
}
return vQuestions;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
try
{
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
}
}
}
//获得指定分类的题目
public Vector getAllQuestionsByCategoryId( String sCategoryId )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
ResultSet rs = null;
try
{
Vector vQuestions = new Vector();
stmt = conn.createStatement();
//执行SQL语句,找出所有可用的题目ID
String sQuery = "select * from question where category_id='" + sCategoryId
+ "' order by question_id";
rs = stmt.executeQuery( sQuery );
while ( rs.next() )
{
Question objQuestion = new Question(rs);
vQuestions.add( objQuestion );
}
return vQuestions;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
try
{
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
}
}
}
//删除指定的题目
public void deleteQuestionById( String sQuestionId )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
try
{
stmt = conn.createStatement();
//执行SQL语句,删除ID
String sUpdateQuery = "delete from question where question_id='" + sQuestionId + "'";
stmt.executeUpdate( sUpdateQuery );
return;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
try
{
stmt.close();
conn.close();
}catch(Exception ex)
{
}
}
}
//获得指定ID的题目详细信息
public Question getQuestionById( String sQuestionId )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
ResultSet rs = null;
try
{
stmt = conn.createStatement();
//执行SQL语句,找出所有可用的题目ID
String sQuery = "select * from question where question_id='" + sQuestionId + "'";
rs = stmt.executeQuery( sQuery );
if ( rs.next() )
{
Question objQuestion = new Question(rs);
return objQuestion;
}
return null;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
try
{
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
}
}
}
//修改指定的题目
public void modifyQuestion ( Question questionObj )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
try
{
stmt = conn.createStatement();
//执行SQL语句,修改题目
String sUpdateQuery = "update question set "
+ "subject = '" + questionObj.getSubject() + "', "
+ "choice_a = '" + questionObj.getChoiceA() + "', "
+ "choice_b = '" + questionObj.getChoiceB() + "', "
+ "choice_c = '" + questionObj.getChoiceC() + "', "
+ "choice_d = '" + questionObj.getChoiceD() + "', "
+ "answer = '" + questionObj.getAnswer() + "' "
+ "where question_id = '" + questionObj.getQuestionId() + "'";
stmt.executeUpdate( sUpdateQuery );
return;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
finally
{
try
{
stmt.close();
conn.close();
}catch(Exception ex)
{
}
}
}
//添加一个新试题
public void addQuestion ( Question questionObj )
throws Exception
{
//获得数据库连接
Connection conn = this.getDBConnection();
if ( conn == null )
{
throw new Exception("数据库连接获得失败!");
}
Statement stmt = null;
ResultSet rs = null;
try
{
stmt = conn.createStatement();
//执行SQL语句生成最大的recordId
String sQuestionId = "";
String sQuery = "select max(question_id) from question";
rs = stmt.executeQuery( sQuery );
rs.next();
String sCurrentMaxId = rs.getString(1);
//当前是第一次登录
if ( sCurrentMaxId == null )
{
sQuestionId = "0000000001";
}
else
{
int iMaxCd = Integer.parseInt(sCurrentMaxId);
sQuestionId = String.valueOf(iMaxCd+1);
int iLength = sQuestionId.length();
for(int i=10; i>iLength; i--)
{
sQuestionId = "0" + sQuestionId;
}
}
//执行SQL语句,修改题目
Strin
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
在线模拟考试系统 (128个子文件)
DQuestion.class 6KB
CommonServlet.class 5KB
DCategory.class 4KB
DRecord.class 4KB
LQuestion.class 4KB
AAdminQuestionList.class 3KB
AExamineeTest.class 3KB
Question.class 3KB
AAdminQuestionAdd.class 3KB
AAdminQuestionModify.class 2KB
AAdminMenu.class 2KB
AExamineeCategory.class 2KB
ALogin.class 2KB
TestRecord.class 2KB
AExamineeHistory.class 2KB
AAdminCategoryModify.class 2KB
GlobalObjectProvider.class 2KB
AAdminCategoryList.class 2KB
CommonConst.class 2KB
AAdminCategoryAdd.class 2KB
LRecord.class 2KB
AExamineeMenu.class 2KB
AAdminCategory.class 2KB
DUser.class 2KB
AAdminHistory.class 2KB
Category.class 2KB
LCategory.class 2KB
User.class 1KB
DateUtil.class 1KB
LUser.class 920B
DCommon.class 839B
.classpath 533B
.component 374B
cmnStyle.css 3KB
logo.gif 4KB
titleTitle2.gif 3KB
loginlogo.gif 3KB
titleTitle.gif 2KB
win.gif 1KB
question.gif 1KB
examine.gif 1KB
history.gif 1KB
setting.gif 624B
titleback.gif 182B
blue_record.gif 104B
red_record.gif 104B
test.htm 2KB
DQuestion.java 9KB
DCategory.java 7KB
DRecord.java 6KB
LQuestion.java 6KB
CommonServlet.java 5KB
AAdminQuestionList.java 5KB
AAdminMenu.java 5KB
AExamineeTest.java 4KB
AExamineeMenu.java 3KB
LCategory.java 3KB
LRecord.java 3KB
Question.java 3KB
AAdminQuestionAdd.java 3KB
AAdminCategoryList.java 2KB
ALogin.java 2KB
AAdminQuestionModify.java 2KB
AExamineeCategory.java 2KB
AExamineeHistory.java 2KB
CommonConst.java 2KB
AAdminHistory.java 2KB
AAdminCategory.java 2KB
GlobalObjectProvider.java 2KB
TestRecord.java 2KB
AAdminCategoryModify.java 2KB
DUser.java 2KB
AAdminCategoryAdd.java 2KB
Category.java 1KB
User.java 1KB
LUser.java 1KB
DCommon.java 802B
DateUtil.java 711B
titleLogo.jpg 26KB
contentsLogo.jpg 11KB
cmnScript.js 2KB
login.js 1KB
adminQuestionList.js 1KB
adminCategoryList.js 686B
examineeTest.js 437B
examineeResult.js 437B
examineeHistory.js 263B
adminHistory.js 263B
examineeCategory.js 137B
adminMenu.js 137B
adminQuestionAdd.js 137B
adminQuestionModify.js 137B
adminCategory.js 137B
adminCategoryAdd.js 137B
adminCategoryModify.js 137B
examineeMenu.js 137B
cmnAdminPagePart1.jsp 5KB
adminQuestionList.jsp 5KB
adminHistory.jsp 5KB
cmnExamineePagePart1.jsp 5KB
共 128 条
- 1
- 2
资源评论
- qinyequan19922013-12-23功能太简单
- bianyixieling2013-07-05功能太简单,按这个做被老师骂了
magicyang168
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功