在Java中,如何通过在数据库得到的结果集得到表的列数和行数

在Java中,如何通过在数据库得到的结果集得到表的列数和行数,第1张

在Java中,获得ResultSet的总行数的方法有以下几种。

第一种:利用ResultSet的getRow方法来获得ResultSet的总行数

Statement stmt = concreateStatement(ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_UPDATABLE);

ResultSet rset = stmtexecuteQuery("select from yourTableName");

rsetlast();

int rowCount = rsetgetRow(); //获得ResultSet的总行数

第二种:利用循环ResultSet的元素来获得ResultSet的总行数

ResultSet rset = stmtexecuteQuery("select from yourTableName");

int rowCount = 0;

while(rsetnext()) {

rowCount++;}rowCount就是ResultSet的总行数。

(1)首先使用last()方法,将数据库游标定位到记录集的最后一行。

(2)使用getRow()方法,返回记录集最后一行的行索引。该索引就等于记录集所包含记录的个数,也就是记录集的行数。getRow()方法是在JDBC API 20中才定义的,在JDBC API 10中没有这个方法。

fos = new FileOutputStream(new File(dir, entrygetKey()+"txt"), true);

把FileOutputStream的第二个参数设置为true,就表示追加内容

先看数据库表, 我里面有46条记录,其中有三条重复,我就拿其中一条emp_id 为"

DWR65030M"  做例子

java代码如下:

import javaioFile;

import javaioFileNotFoundException;

import javaioFileWriter;

import javaioIOException;

import javaioPrintWriter;

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

/

  java读取数据库内容并存放到文件

  

  @author young

 

 /

public class JavaToSQLTest {

public static void main(String[] args) throws FileNotFoundException {

//  // 关联文件

//  File file = new File("F:\\workspace\\one\\testtxt");

//  // java IO流和文件关联

//  PrintWriter pw = new PrintWriter(file);

PrintWriter pw = null;

FileWriter fw = null;

// 定义数据库驱动

String driver = "commicrosoftsqlserverjdbcSQLServerDriver";

// 数据库连接URL

String url = "jdbc:sqlserver://localhost:1433;DatabaseName = soft";

Connection conn = null;

String id;

String fname, lname;

try {

// pwprintln("emp_id\t\tfname\t\tlname");

// pwprintln("------\t\t------\t\t------");

// 加载数据库驱动

ClassforName(driver);

// 创建数据库连接

conn = DriverManagergetConnection(url, "sa", "1234");

// 创建预编译SQL对象

PreparedStatement ps = conn

prepareStatement("select emp_id, fname, lname from emps");

// 执行SQL,获取结果集rs

ResultSet rs = psexecuteQuery();

// 处理结果集

while (rsnext()) {

id = rsgetString("emp_id");

fname = rsgetString("fname");

lname = rsgetString("lname");

String filename = id + "txt";

// 关联文件

File file = new File(filename);

if(!fileexists()){

// 判断文件不存在就new新文件,写数据

try {

filecreateNewFile();

// java IO流和文件关联

pw = new PrintWriter(file);

pwprint(id + "\t");

pwprint(fname + "\t\t");

pwprint(lname);

pwprintln();

pwflush();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}else{

// 判断文件存在,就以FileWriter文件追加的方式写文件

try {

fw = new FileWriter(filename,true);

fwwrite(id + "\t");

fwwrite(fname + "\t\t");

fwwrite(lname);

fwflush();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

eprintStackTrace();

Systemoutprintln("加载数据库失败");

Systemexit(1);

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

Systemoutprintln("数据库连接错误");

Systemexit(1);

} finally {

if (conn != null) {

try {

// 关闭数据库连接

connclose();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

if (pw != null) {

// 关闭IO流

pwclose();

}

if(fw != null){

try {

fwclose();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

}

}

结果生成了43个txt文件   ,看

DWR65030Mtxt文件的内容如下:

里面有两条记录 ,实现了

java类

public ArrayList selectall(ActiveForm af){

ArrayList list = new ArrayList();

Connection con = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

con = DBConnectiongetcon();

String selectsql = "";

if(afgetAttitle()equals("所有活动")){

selectsql = "select ,zongshu=(select count(abiaoti) from active) from active,atitle where activeatid=atitleatid";

}else{

selectsql = "select ,zongshu=(select count(abiaoti) from active) from active,atitle where activeatid=atitleatid and atitleattitle='"+afgetAttitle()+"'";

}

ps = conprepareStatement(selectsql);

rs = psexecuteQuery();

while(rsnext()){

ActiveForm af2 = new ActiveForm();

af2setAid(rsgetInt("aid"));

af2setAbiaoti(rsgetString("abiaoti"));

af2setAtext(rsgetString("atext"));

af2setAtid(rsgetInt("atid"));

af2setAcost(rsgetInt("acost"));

af2setAcity(rsgetString("acity"));

af2setAcount(rsgetInt("acount"));

af2setAdate(rsgetString("adate"));

af2setAlevel(rsgetInt("alevel"));

af2setAstate(rsgetInt("astate"));

af2setAttitle(rsgetString("attitle"));

af2setZongshu(rsgetString("zongshu"));

listadd(af2);

}

} catch (Exception e) {

eprintStackTrace();

}finally{

DBConnectionclose(con, ps, rs);

}

return list;

}

action内容

public ActionForward activefind(ActionMapping mapping, ActionForm form,

>

以上就是关于在Java中,如何通过在数据库得到的结果集得到表的列数和行数全部的内容,包括:在Java中,如何通过在数据库得到的结果集得到表的列数和行数、java 从数据库取数据并存入本地文本中、java 从数据库取出数据并保存到本地文本中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9485300.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存