java实现标准化考试系统详解(二)-----数据库、数据表的规划和题库增删改查

本文详细介绍了如何使用Java构建标准化考试系统的数据库和数据表规划,包括试题的主要字段,如试题序号、适用工程、难易度等。接着,文章讨论了数据库的创建与连接、试题的添加以及数据验证和查询工具类的实现。同时,提到了用于显示数据的表格Dialog和选择题管理的视图及处理类。
摘要由CSDN通过智能技术生成

(一)、数据库、数据表的规划

首先我们需要考虑一下作为考试系统我们需要哪些数据,这些数据将以后作为字段值出现。

我们先来看看这张图:


图中框起来的部分基本上就是我们需要的数据,细数数就是:

1.试题序号,它作为主键出现不可以重复(id)

2.适用工程,可以理解为这个题适用于哪个学科(adaptEngineering)

3.难易度(complexity)

4.试题类型,用来区分是单选题还是多选题或者是判断题(type)

5.试题内容(content)

6.图片名称,如果这道题带图片则需要录入图片名称(pic)

7.选项A,B,C,D的内容(a,b,c,d)

8.正确答案(answer)

这张图虽然体现的是选择题数据,但是判断题其实和它的数据差不多,我们可以让判断题的A,B选项内容始终为正确、错误,因此C,D两个部分不填入内容即可,其他完全和选择题相同。

(二)、具体实现:

1.创建数据库并与其建立连接:

 Connection con;
 PreparedStatement ppStatement;
 String sql="";
//建立名为Examination的数据库
 String url="jdbc:derby:Examination;create=true";
	try{
		
		con=DriverManager.getConnection(url);
		//建立名为Question的表
                sql ="create table Question"+
                "(id int primary key not null,"+
                "adaptEngineering varchar(20)," + 
                "complexity  varchar(20),"+
                "type  int,"+
                "content  varchar(500),"+
                "pic varchar(300),"+
                "a varchar(300),"+
                "b varchar(300),"+
                "c varchar(300),"+
                "d varchar(300),"+
                "answer varchar(20))";
        ppStatement=con.prepareStatement(sql);
        ppStatement.executeUpdate();
        con.close();
		
	}catch(SQLException exception)
	{
		System.out.println(exception);
	}

2.添加试题

   sql="insert into Question values(?,?,?,?,?,?,?,?,?,?,?)";
   id=Integer.valueOf(mView.mQuestionID.getText().trim());			
                ppStatement=con.prepareStatement(sql);
	        ppStatement.setInt(1,id); //向数据库中写入该题id
	        ppStatement.setString(2,mView.mApplicable.getText().trim());//写入适用工程
	        ppStatement.setString(3, mView.mComplexityBox.getSelectedItem().toString());//复杂度
	        ppStatement.setInt(4,type);//试题类型
		ppStatement.setString(5,mView.mContext.getText().trim()); //试题内容
	        ppStatement.setString(6,mView.mPictureName.getText().trim()); //图片名字(可为空,为空表示无图)
	        ppStatement.setString(7,mView.inputA.getText().trim()); //a选项内容
	        ppStatement.setString(8,mView.inputB.getText().trim()); //b选项内容
	        ppStatement.setString(9,mView.inputC.getText().trim()); //c选项内容
	        ppStatement.setString(10,mView.inputD.getText().trim());//d选项内容
	        ppStatement.setString(11,mAnswer);//答案
	        isSucceed=ppStatement.executeUpdate();//提交数据
	        con.close();//关闭与数据库连接

3.还需要一个工具类PreQuery类,他负责从数据库中获取字段值和我们想要查询的数据,我们可以通过他来查看数据是否被插入到表中

public class PreQuery {
	String databaseName;//数据库名称
	String SQL;//需要执行的sql语句
	String[] columnName;//字段值
	String[][] record;//读取记录保存在二维数
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值