Oracle试卷01

Java数据库编程测试题

一、下面是《学员操评系统》的数据库的基本表的设计:

1:学员基本信息

字段

类型

长度

是否空

约束说明

学号

char

13

主键

姓名

varchar

8

 

性别

char

2

 

 

学历

char

4

 

默认值 ‘高中’ ,学历只能是’高中’,’大专’,’本科’

家庭住址 

varchar

50

 

 

 

2:学员科目成绩

字段

类型

长度

是否空

约束说明

编号

int

 

主键(标识列)

学号

char

13

外键(学员基本信息)

计算机基础分

decimal

4,2

 

默认值为0,0<=分数值<=100

C语言分

decimal

4,2

 

默认值为0,0<=分数值<=100

JAVA语言分

decimal

4,2

 

默认值为0,0<=分数值<=100

SQL语言分

decimal

4,2

 

默认值为0,0<=分数值<=100

JSP

decimal

4,2

 

默认值为0,0<=分数值<=100

项目分

decimal

4,2

 

默认值为0,0<=分数值<=100

 

 

二、实现功能

1、数据库部分:将所有SQL语句保存为文件,文件命名方式为:学员操评系统_姓名.sql

Ø 建立数据库、建立上述表;(10分)

Ø 建立各表之间关联关系,并保证数据的一致性、完整性;(10分)

Ø 数据的录入(每表数据不少于5条)(10分)

2JAVA部分:利用JDBC完成下面操作,项目名为:StudentManager

Ø JDBC数据库的正确连接;(10分)

Ø 方法insertRow():利用JDBC学员基本信息表插入1条数据;(20分)

Ø 方法retrieveRow():利用JDBC打印学员科目成绩表的所有信息;(30分)

Ø 在main方法中调用上述2方法;(10分)

答案:

--创建学员基本信息表
create table stuInfo(
sno char(13) primary key,
sname varchar(8) not null,
sex char(2),
degree char(4) default '高中' check(degree in('高中','本科','大专')),
addr varchar(50)
);
--创建学员科目成绩表
create table score(
id int primary key,
sno char(13) not null,
basic_score decimal(4,2) default 0 check(basic_score between 0 and 100),
c_score decimal(4,2) default 0 check(c_score between 0 and 100),
java_score decimal(4,2) default 0 check(java_score between 0 and 100),
sql_score decimal(4,2) default 0 check(sql_score between 0 and 100),
jsp_score decimal(4,2) default 0 check(jsp_score between 0 and 100),
proj_score decimal(4,2) default 0 check(proj_score between 0 and 100),
constraint fk_sno foreign key(sno) references stuInfo(sno)
);
--向学员基本信息表插入数据
insert into stuInfo VALUES('linklinclass1','lk','男','高中','深圳');
insert into stuInfo VALUES('linklinclass2','jl','男','大专','深圳');
insert into stuInfo VALUES('linklinclass3','pk','女','高中','上海');
insert into stuInfo VALUES('linklinclass4','wk','男','本科','深圳');
insert into stuInfo VALUES('linklinclass5','fs','女','高中','北京');
--向学员科目成绩表插入数据
insert into score values(1,'linklinclass1',40.5,57.8,65.8,21.4,45.4,31.9);
insert into score values(2,'linklinclass1',50.5,35.5,65.8,36.4,34.4,12.9);
insert into score values(3,'linklinclass2',58.6,50,65.8,21.4,45.4,31.9);
insert into score values(4,'linklinclass2',40.3,69.8,65.8,21.4,45.4,54.9);
insert into score values(5,'linklinclass2',78.5,82.8,25.8,98.4,98.4,34.9);
--查询数据
select * from stuInfo;
select * from score;
delete stuInfo where sno='linklinclass6'


jdbc.properties配置文件信息:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
username=scott
userpwd=123

package test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCMain {
	static Connection conn=null;
	static PreparedStatement pre=null;
	static ResultSet rs=null;
	public static void main(String[] args) {
		Properties pro=new Properties();
		try {
			//1.加载数据库配置文件
			pro.load(new FileInputStream("jdbc.properties"));
			String driver=pro.getProperty("driver");
			String url=pro.getProperty("url");
			String user=pro.getProperty("username");
			String password=pro.getProperty("userpwd");
			//2.加载数据库驱动
			Class.forName(driver);
			//3.获取数据库连接
			conn=DriverManager.getConnection(url, user, password);
			//4.编写sql语句
			String sql_insert="insert into stuInfo values(?,?,?,?,?)";
			String sql_select="select * from score";
			insertRow(sql_insert,"linklinclass6","py","男","本科","湖南");
			retrieveRow(sql_select);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//关闭资源
			try {
				if(rs!=null){
					rs.close();
				}
				if(pre!=null){
					pre.close();
				}
				if(conn!=null){
					conn.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	/**
	 * 打印查询结果
	 * @param sqlSelect
	 */
	private static void retrieveRow(String sql) {
		try {
			pre=conn.prepareStatement(sql);
			rs=pre.executeQuery();
			while(rs.next()){
			System.out.printf("编号:%d 学号:%4s 计算机基础分:%.2f C语言分:%.2f JAVA语言分:%.2f SQL语言分:%.2f JSP分:%.2f 项目分:%.2f\n",
					rs.getInt("id"),rs.getString("sno"),rs.getDouble("basic_score"),rs.getDouble("c_score")
					,rs.getDouble("java_score"),rs.getDouble("sql_score"),rs.getDouble("jsp_score")
					,rs.getDouble("proj_score"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	private static void insertRow(String sql,Object ...objects) {
		try {
			pre=conn.prepareStatement(sql);
			for(int i=0;i<objects.length;i++){
				pre.setObject(i+1, objects[i]);
			}
			pre.executeUpdate();
			System.out.println("插入数据成功!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值