/*******************************************************************************
* 系统ID : 系统名 :在线考试系统 程序ID :Questions 功能 :考题实体类 文件名 :Questions.java
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/12 初版 刘锷
* 初始完成
*
******************************************************************************/
package com.exam.javabean;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class Questions {
/** ID */
private String id;
/** 题目 */
private String question;
/** 答案a */
private String keya;
/** 答案b */
private String keyb;
/** 答案c */
private String keyc;
/** 答案d */
private String keyd;
/** 正确答案 */
private String answer;
/** 题目分值 */
private String score;
/** 题目类型 */
private String kind;
/** 返回题目 */
public String getquestion() {
return question;
}
/** 设置题目 */
public void setquestion(String question) {
this.question = question;
}
/** 返回ID */
public String getid() {
return id;
}
/** 设置ID */
public void setid(String id) {
this.id = id;
}
/** 返回答案a */
public String getkeya() {
return keya;
}
/** 设置答案a */
public void setkeya(String keya) {
this.keya = keya;
}
/** 返回答案b */
public String getkeyb() {
return keyb;
}
/** 设置答案b */
public void setkeyb(String keyb) {
this.keyb = keyb;
}
/** 返回答案c */
public String getkeyc() {
return keyc;
}
/** 设置答案c */
public void setkeyc(String keyc) {
this.keyc = keyc;
}
/** 返回答案d */
public String getkeyd() {
return keyd;
}
/** 设置答案d */
public void setkeyd(String keyd) {
this.keyd = keyd;
}
/** 返回正确答案 */
public String getanswer() {
return answer;
}
/** 设置正确答案 */
public void setanswer(String answer) {
this.answer = answer;
}
/** 返回分值 */
public String getscore() {
return score;
}
/** 设置分值 */
public void setscore(String score) {
this.score = score;
}
/** 返回类型 */
public String getkind() {
return kind;
}
/** 设置类型 */
public void setkind(String kind) {
this.kind = kind;
}
/***************************************************************************
* 方法名 :randomQuestions 功能 :取得指定数量随机考题 参数 :DB db I 数据库连接 String Number I
* 考题数量
*
* 返回值 :ArrayList 指定数量随机考题数组
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/13 初版
* 刘锷 初始完成
*
**************************************************************************/
public static ArrayList randomQuestions(DB db, String Number, String kind)
throws SQLException {
// 新建一个数组用来保存返回随机题目
ArrayList list = new ArrayList();
ResultSet rs;
// 查询数据库语句变量
String strSql;
strSql = " select * from tiku where kind='" + kind
+ "' order by rand() limit " + Number + "";
// System.out.println(strSql);
// 执行sql查询
rs = db.OpenSql(strSql);
while (rs.next()) {
Questions qe = new Questions();
qe.setanswer(rs.getString("answer"));
qe.setkeya(rs.getString("keya"));
qe.setkeyb(rs.getString("keyb"));
qe.setkeyc(rs.getString("keyc"));
qe.setkeyd(rs.getString("keyd"));
qe.setquestion(rs.getString("question"));
qe.setscore(rs.getString("score"));
list.add(qe);
}
// 如果ResultSet不为空就关闭它
if (rs != null) {
rs.close();
}
return list;
}
/***************************************************************************
* 方法名 : getQuestionList 功能 : 取得题库信息 参数 : DB db I 数据库连接 返回值 :list 题库信息列表
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/21 初版
* 刘锷 初始完成
*
**************************************************************************/
public static ArrayList getQuestionList(DB db) throws SQLException {
String strSql;
ResultSet rs;
ArrayList list = new ArrayList();
// 编写sql语句
strSql = "select * from tiku order by kind";
// 执行sql语句
rs = db.OpenSql(strSql);
// 如果sql有返回值那么将这个信息保存到employee实体对象里并返回
while (rs.next()) {
Questions qe = new Questions();
qe.setid(rs.getString("id"));
qe.setquestion(rs.getString("question"));
qe.setanswer(rs.getString("answer"));
qe.setkeya(rs.getString("keya"));
qe.setkeyb(rs.getString("keyb"));
qe.setkeyc(rs.getString("keyc"));
qe.setkeyd(rs.getString("keyd"));
qe.setscore(rs.getString("score"));
qe.setkind(rs.getString("kind"));
list.add(qe);
}
// 如果ResultSet不为空就关闭它
if (rs != null) {
rs.close();
}
return list;
}
/***************************************************************************
* 方法名 :QuestionInsert 功能 :插入一个题目 参数 :DB db I 数据库连接 String s_id I 学生编号
*
* 返回值 : true 操作成功 false 操作失败
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/21 初版
* 刘锷 初始完成
*
**************************************************************************/
public static boolean QuestionInsert(DB db, String question, String answer,
String keya, String keyb, String keyc, String keyd, String score,
String kind) throws SQLException {
// 定义变量
String strSql;
// insert into student
// values(null,9,'45sdf',password(123),'男','kljl','ljk','ojik')
// 编写语句
strSql = "insert into tiku values(null,'" + question + "','" + keya
+ "','" + keyb + "','" + keyc + "','" + keyd + "','" + answer
+ "','" + score + "','" + kind + "')";
System.out.println(strSql);
db.OpenSql("lock table tiku write");
try {
// 如果插入成功就返回真否则返回假
if (db.ExecSql(strSql) == 0) {
db.OpenSql("unlock tables");
return false;
} else {
db.OpenSql("unlock tables");
return true;
}
} catch (Exception e) {
db.OpenSql("unlock tables");
return false;
}
}
/***************************************************************************
* 方法名 :QuestionDel 功能 :删除试题 参数 :DB db I 数据库连接 String s_id I
* 学生编号
*
* 返回值 : true 操作成功 false 操作失败
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/28 初版
* 刘锷 初始完成
*
**************************************************************************/
public static boolean QuestionDel(DB db, String q_id) throws SQLException {
// 定义删除语句变量
String strSql, strSql1;
// 编写删除语句
strSql = "delete from tiku where id ='" + q_id + "'";
db.OpenSql("lock table tiku write");
// 如果插入成功就返回真否则返回假
if (db.ExecSql(strSql) == 0) {
db.OpenSql("unlock tables");
return false;
} else {
db.OpenSql("unlock tables");
return true;
}
}
/***************************************************************************
* 方法名 :QuestionUpdate 功能 :更新一个题目 参数 :DB db I 数据库连接 String s_id I 学生编号
*
* 返回值 : true 操作成功 false 操作失败
*
* 修改历史 年 月 日 类别 作者 内容 ----------- ---- ------------ ---------- 2007/3/19 初版
* 刘锷 初始完成
*
**************************************************************************/
public static boolean QuestionUpdate(DB db, String id, String question,
String keya, String keyb, String keyc, String keyd, String answer,
String score, String kind) throws SQLException {
// 定义变量
String strSql, strSql1;
// 编写语句
strSql = "update tiku set question='" + question + "',keya='" + keya
+ "',keyb='" + keyb + "',keyc='" + keyc + "',keyd='" + keyd
+ "',answer='" + answer + "',score='" + score + "',kind='"
+ kind + "' where id='" + id + "'";
System.