21:08:05 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;↵ ResultSe t rs;↵ 21:09:00 try{ String uri="jdbc:odbc:dataSource";↵ 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<Integer>vector=new Vector<Integer>0;↵ for(int i=1;i<=count;i++) { ↵ vector. add(new Integer(i));↵ } ↵ int itemAmount=Math . min(wantRecordAmount, count);↵ System. out. println("随机抽取"+itemAmount+"条记录.");↵ 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("均价:"+aver+"元");↵ } catch(SQLException e){↵ 21:10:55 System.out.println(“”+e);
时间: 2024-03-11 22:46:28 浏览: 17
这段代码是一个 Java 程序,用于从一个名为 "goods" 的表中随机抽取指定数量的记录,并计算它们的均价。其中,"wantRecordAmount" 变量表示要抽取的记录数目,"uri"、"id" 和 "password" 变量表示连接数据库所需的信息,"rs" 表示查询结果集。代码中的 【代码1】、【代码2】和【代码3】分别表示需要填写的代码部分。程序首先加载 JDBC-ODBC 桥接器,然后建立数据库连接,使用 executeQuery 方法查询 "goods" 表中的全部记录并将游标移到最后一行,接着将所有记录的行号存入一个 vector 中,然后从中随机抽取指定数量的记录,并计算它们的均价。如果在这个过程中发生 SQL 异常,则程序将输出异常信息。
相关问题
java.util.date和java.sql.date转换
### 回答1:
Java 中的 java.util.Date 类型和 java.sql.Date 类型可以通过以下方式进行转换:
将 java.util.Date 转换为 java.sql.Date,可以使用 java.sql.Date 的构造函数,如下所示:
```
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
```
将 java.sql.Date 转换为 java.util.Date,可以使用 java.sql.Date 的 getTime() 方法,如下所示:
```
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
java.util.Date utilDate = new java.util.Date(sqlDate.getTime());
```
需要注意的是,java.sql.Date 类型只能存储日期,不能存储时间。因此,在将 java.util.Date 转换为 java.sql.Date 时,需要将时间部分截断,只保留日期部分。
### 回答2:
在Java中,java.util.Date和java.sql.Date是两个用于表示日期和时间的类。它们之间的转换可以通过以下方法实现:
要将java.util.Date转换为java.sql.Date,可以使用以下步骤:
1. 首先,使用java.util.Date的getTime()方法获取一个long型的时间戳。
2. 然后,使用java.sql.Date的构造方法,将该时间戳作为参数传入。
例如:
```
java.util.Date utilDate = new java.util.Date();
long timeMillis = utilDate.getTime();
java.sql.Date sqlDate = new java.sql.Date(timeMillis);
```
要将java.sql.Date转换为java.util.Date,可以使用以下步骤:
1. 首先,创建一个java.sql.Date对象。
2. 然后,使用java.sql.Date对象的getTime()方法获取一个long型的时间戳。
3. 最后,使用java.util.Date的构造方法,将该时间戳作为参数传入。
例如:
```
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
long timeMillis = sqlDate.getTime();
java.util.Date utilDate = new java.util.Date(timeMillis);
```
需要注意的是,java.sql.Date 继承自 java.util.Date,但它对年月日的处理更为严格。java.sql.Date只保留日期的部分,并将时间部分设为固定值"00:00:00"。
综上所述,通过上述的转换方法,可以在java.util.Date和java.sql.Date之间进行相互转换。
### 回答3:
要将java.util.Date类型转换为java.sql.Date类型,可以使用java.sql.Date的构造函数。java.sql.Date是java.util.Date的子类,因此可以直接转换。以下是一个示例代码:
```java
import java.util.Date;
import java.sql.Date;
public class DateConversionExample {
public static void main(String[] args) {
// 创建一个java.util.Date对象
java.util.Date utilDate = new java.util.Date();
// 将utilDate转换为sqlDate
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
// 输出结果
System.out.println("java.util.Date: " + utilDate);
System.out.println("java.sql.Date: " + sqlDate);
}
}
```
要将java.sql.Date类型转换为java.util.Date类型,可以使用java.sql.Date的getTime()方法,该方法返回一个long类型的毫秒数,然后使用java.util.Date的构造函数将其转换为java.util.Date类型。以下是一个示例代码:
```java
import java.util.Date;
import java.sql.Date;
public class DateConversionExample {
public static void main(String[] args) {
// 创建一个java.sql.Date对象
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
// 将sqlDate转换为utilDate
java.util.Date utilDate = new java.util.Date(sqlDate.getTime());
// 输出结果
System.out.println("java.sql.Date: " + sqlDate);
System.out.println("java.util.Date: " + utilDate);
}
}
```
这是java.util.Date和java.sql.Date之间的简单转换方法。注意,java.sql.Date只包含日期部分,不包含时间部分。
package com.xh.pojo; import java.sql.Timestamp;
这是一个Java类的开头部分,其中定义了一个名为 `com.xh.pojo` 的包,并导入了 `java.sql.Timestamp` 类。
`com.xh.pojo` 包通常用于存放与业务逻辑相关的Java类,其中 `com.xh` 为公司或组织的域名,`pojo` 则表示普通Java对象,通常用于存放与数据模型相关的类。
`java.sql.Timestamp` 类则是Java中用于表示时间戳的类,它继承自 `java.util.Date` 类,并且精度更高,可以表示毫秒级别的时间。在Java中,时间戳通常用于记录事件发生的时间,例如用户登录时间、数据修改时间等。
在该Java类中,可能会定义一些与时间戳相关的属性或方法,例如:
```java
package com.xh.pojo;
import java.sql.Timestamp;
public class User {
private int id;
private String username;
private String password;
private Timestamp createTime; // 创建时间
private Timestamp updateTime; // 更新时间
// 省略getter和setter方法
}
```
在上述示例中,定义了一个名为 `User` 的Java类,其中包含了一个名为 `createTime` 和一个名为 `updateTime` 的时间戳属性,用于记录用户的创建时间和更新时间。