您的位置:首页 > 数据库 > Oracle

Oracle试卷01

2016-05-15 21:46 507 查看
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分)

2、JAVA部分:利用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','女','高中','北京');

--向学员科目成绩表插入数据

inse
4000
rt 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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: