实验项目4 第1部分 JDBC数据库操作
更新时间:2023-11-16 10:33:01 阅读量: 教育文库 文档下载
实验项目四 Java SE 高级编程
第1部分 JDBC数据库操作
[实验目的]
1、掌握JDBC API中各个类及接口的用法。
2、能够灵活使用JDBC API中各个类及接口编写数据库增、查、改、删应用程序。
[实验要求]
1、 复习理论教学中所学的内容。
2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。 3、 认真总结实验并书写实验报告。
[实验课时] 2学时
[实验教学方式] 学生上机实验,教师随堂指导。 [实验内容]
实验1 抽取样本
//请按模板要求,将【代码】替换为Java程序代码。 /*请使用shop数据库,配置数据源**/ //RandomGetRecord.java
import java.sql.*; import java.util.*;
public class RandomGetRecord {
public static void main(String args[]) {
int wantRecordAmount = 10; //随机抽取的记录数目 Random random =new Random();
try{ 【代码1】//加载JDBC-ODBC桥接器 }
catch(ClassNotFoundException e) { System.out.print(e); }
Connection con; Statement sql; ResultSet rs; try {
String uri=\ String id=\ String password=\
con=DriverManager.getConnection(uri,id,password);
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs =【代码2】 //sql调用.executeQuery方法查询goods表中的全部记录
rs.last(); //将rs的游标移到rs的最后一行 int count=rs.getRow();
Vector
vector.add(new Integer(i)); }
int itemAmount=Math.min(wantRecordAmount,count); System.out.println(\随机抽取\条记录.\ double sum =0, n = itemAmount; while(itemAmount>0) {
int randomIndex = random.nextInt(vector.size()); int index=(vector.elementAt(randomIndex)).intValue(); 【代码3】//将rs的游标游标移到index String number = rs.getString(1); String name = rs.getString(2); java.util.Date date=rs.getDate(3); double price=rs.getDouble(4); sum = sum+price; itemAmount--;
vector.removeElementAt(randomIndex); }
con.close(); double aver = sum/n;
System.out.println(\均价:\元\ }
catch(SQLException e) { System.out.println(\ } } }
实验2 用户转账
//请按模板要求,将【代码】替换为Java程序代码。 //TurnMoney.java
/*请先新建名为bank的数据库,其中建两个表,分别为card1,card2,这两个表的字段分别为 number(文本类型) name (文本类型) amount(数字类型),并给两张表一些初始记录值。再配置数据源。**/
import java.sql.*; public class TurnMoney {
public static void main(String args[]){ Connection con = null; Statement sql; ResultSet rs;
try { Class.forName(\ }
catch(ClassNotFoundException e){ System.out.println(\ }
try{ double n = 100;
con = DriverManager.getConnection(\ 【代码1】关闭自动提交模式 sql = con.createStatement();
rs = sql.executeQuery(\ rs.next();
double amountOne = rs.getDouble(\
System.out.println(\转账操作之前zhangsan的钱款数额:\ rs = sql.executeQuery(\ rs.next();
double amountTwo = rs.getDouble(\
System.out.println(\转账操作之前xidanShop的钱款数额:\ amountOne = amountOne-n; amountTwo = amountTwo+n; sql.executeUpdate(
\TE card1 SET amount =\
sql.executeUpdate(
\TE card2 SET amount =\
con.commit(); //开始事务处理,如果发生异常直接执行catch块 【代码2】恢复自动提交模式
rs = sql.executeQuery(\ rs.next();
amountOne = rs.getDouble(\
System.out.println(\转账操作之后zhangsan的钱款数额:\ rs = sql.executeQuery(\ rs.next();
amountTwo = rs.getDouble(\
System.out.println(\转账操作之后xidanShop的钱款数额:\ con.close(); }
catch(SQLException e){
try{ 【代码3】撤消事务所做的操作 }
catch(SQLException exp){} System.out.println(e.toString()); } } }
实验3 用表格显示数据库中的记录
/*请使用shop数据库,配置数据源**/
// Query
import java.sql.*; public class Query {
String datasourceName=\ //数据源名 String tableName=\ //表名 Object a[][]; public Query() {
try{ Class.forName(\ }
catch(ClassNotFoundException e) { System.out.print(e); } }
public void setDatasourceName(String s) { datasourceName=s.trim(); }
public void setTableName(String s) { tableName=s.trim(); }
public Object[][] getRecord() { Connection con;
PreparedStatement sql; ResultSet rs; try {
String uri=\ String id=\
String password=\
con=DriverManager.getConnection(uri,id,password);
DatabaseMetaData metadata=___________________________;//获取DatabaseMetaData对象metadata
ResultSet rs1=___________________________;// metadata调用getColumes方法 得到rs1
int 字段个数=0; while(rs1.next()) { 字段个数++; }
int n=getAmount();
a = new Object[n][字段个数];
sql=con.prepareStatement(\ rs=sql.executeQuery(); int m=0;
while(rs.next()) {
for(int k=1;k<=字段个数;k++) { a[m][k-1] = rs.getString(k); } m++; }
con.close(); }
catch(SQLException e) {
System.out.println(\请输入正确的表名\ }
return a; }
public int getAmount(){ Connection con; Statement sql; ResultSet rs; try {
String uri=\ String id=\
String password=\
con=DriverManager.getConnection(uri,id,password);
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery(\ rs.last();
int rows = rs.getRow(); return rows; }
catch(SQLException exp){
System.out.println(\ return 0; } } }
//MainClass
import javax.swing.*; import java.awt.*;
import java.awt.event.*; public class Example11_14 {
public static void main(String args[]) { JTable table;
Query query; //负责查询数据库 query = new Query();
query.setDatasourceName(\ query.setTableName(\
Object a[][]=________________________;//query调用getRecord方法给a[][]赋值 int m=a[0].length;
String b[]=new String[m]; for(int i=0;i b[i]=\字段\ table=______________________;//创建表格对象 JFrame frame=new JFrame(); frame.add( _____________________);//将表格添加在JScrollPane中 frame.setVisible(true); frame.setBounds(20,20,300,400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
正在阅读:
实验项目4 第1部分 JDBC数据库操作11-16
法律文化网上计分作业答案05-11
33大类食品分类表04-19
2012年福建专升本政策实用解释06-19
2014-2015年人教版小学数学四年级下册教学设计 - 图文09-17
企业所得税练习题10-19
基于可行性报告公路BOT项目投资盈利能力快速分析论文08-07
地质专业校内实习报告范文(通用版)07-30
2016监理试题及答案311-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 操作
- 部分
- 数据库
- 项目
- JDBC
- 高级技术问答
- 微机原理课程设计报告(电子秒表)
- 数据结构作业1
- 山东省临沂市兰山区2017-2018学年七年级(上)期中生物试卷(word版含答案解析)
- 电气自动化 微波干燥机测控系统文献综述
- 南阳市屠宰场资料
- 战略管理战略群组分析
- 时间序列分析试题
- 2020年小学数学一年级下册单元教材分析全册精品精品版
- 0ECD对部分国家房地产及有关政策调查与研究结论
- 公园景观工程建设项目可行性研究报告
- 2011 ACM招新 宣传单
- 灰度变换,原理 及Matlab程序
- 15西餐《西餐礼仪》结业考试卷A及答案
- 新验标考核试题(带答案)
- 注射器采血的操作流程及注意事项
- 幼儿园食堂餐饮从业人员食品安全知识培训考核试题
- 201312视导简报
- 部编版二年级语文上册5-8单元复习课件
- 加强民政队伍建设打造强势民政