实验项目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=new Vector(); for(int i=1;i<=count;i++) {

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); } }

本文来源:https://www.bwwdw.com/article/a7hv.html

Top