java 如何获取 mysql数据库中表格的总记录数

java 如何获取 mysql数据库中表格的总记录数,第1张

首先明确一下,你的空指针是在哪报的错,你写的sql语句,本身也是被预编译后,放mysql执行的,

如果你selectt 方式去读取的,那么可以通过getRow或者是遍历的方式去计数,如果selectt count方式的话,可以直接通过getInt方式去读取,你上边说报了空指针,那你自己可以加一个端点进行调试

import javaio;

import javatextSimpleDateFormat;

import javautil;

import javasql;

import javautilDate;

import javautilHashMap;

import javautilMap;

import jxl;

public class SimUpdate {

private String fileName;

public ZfzSimUpdate(String fileName){

thisfileName = fileName;

}

static Map tNames;

static{

tNames = new HashMap();

}

/

用于产生 数据库的 ID 值,组成 [年月日时分秒(100-999)] 总共 17 位数

根据不同的表名,可保证同一秒内产生的 ID 号不重复

/

private static String getDtime() {

String rid;

Date nd = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

rid = sdfformat(nd);

return rid;

}

public String getSeqNumber(String tableName) {

if(tableName == null || ""equals(tableName))

tableName = "GENERY";

Integer it;

// noinspection SynchronizeOnNonFinalField

synchronized(tNames){

it = (Integer)tNamesget(tableName);

if(it == null){

it = new Integer(100);

tNamesput(tableName, it);

}else{

if(itintValue() > 998)

it = new Integer(100);

else

it = new Integer(1 + itintValue());

tNamesput(tableName, it);

}

}

return getDtime() + StringvalueOf(it);

}

private void updateDb(){

try{

Connection conn = DbPoolconnectDB();

if(conn != null){

Statement stmt = conncreateStatement();

jxlWorkbook rwb = null;

try{

//构建Workbook对象 只读Workbook对象

//直接从本地文件创建Workbook

//从输入流创建Workbook

InputStream is = new FileInputStream(fileName);

rwb = WorkbookgetWorkbook(is);

//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中

//Sheet的下标是从0开始的

//获取第一张Sheet表

Sheet rs = rwbgetSheet(0);

//获取Sheet表中所包含的总列数

int rsColumns = rsgetColumns();

//获取Sheet表中所包含的总行数

int rsRows = rsgetRows();

//获取指这下单元格的对象引用

String simNumber = "",termSeqId = "";

//指定SIM卡号及序列号

for(int i=0;i<rsRows;i++){

for(int j=0;j<rsColumns;j++){

Cell cell = rsgetCell(j,i);

if(j==0){

simNumber = cellgetContents();

}

termSeqId = "633"+simNumber;

}

String sql = "查询SQL";

int isOk = stmtexecuteUpdate(sql);

if(isOk == 0 && !simNumberequals("")){

String termId = getSeqNumber("termInf");

String insertSql = "自定义INSERT";

int isAdd = stmtexecuteUpdate(insertSql);

if(isAdd > 0){

Systemoutprintln("成功插入第"+i+"条数据");

}

}

//Systemoutprintln("SIM卡号:"+simNumber+",序列号:"+termSeqId);

}

//以下代码为写入新的EXCEL,这里不使用,所以注释

/

//利用已经创建的Excel工作薄创建新的可写入的Excel工作薄

jxlwriteWritableWorkbook wwb = WorkbookcreateWorkbook(new File("D://Book2xls"),rwb);

//读取第一张工作表

jxlwriteWritableSheet ws = wwbgetSheet(0);

//获取第一个单元格对象

jxlwriteWritableCell wc = wsgetWritableCell(0, 0);

//决断单元格的类型,做出相应的转化

if (wcgetType() == CellTypeLABEL) {

Label l = (Label) wc;

lsetString("The value has been modified");

}

//写入Excel对象

wwbwrite();

wwbclose();

/

}catch(Exception e){

eprintStackTrace();

}

finally{

// *** 作完成时,关闭对象,翻译占用的内存空间

rwbclose();

}

}

}catch(Exception e){

eprintStackTrace();

}

}

public static void main(String args[]){

DbPool dbPool = new DbPool("dbConncfg");//连接数据库

SimUpdate simUpdate = new SimUpdate("zfz_simxls");

simUpdateupdateDb();

}

}

excel有行和列,可以对应数据库表的行和字段。先获取你excel中的数据,如果你的数据是和java中实体对应的话,循环获取每一行数据存放进实体对象中,然后进行数据库保存就好了。

读取excel数据可以使用poi。

这个设计的内容如下:

PoI技术,将表格数据解析存储到数据库

数据显示,jqGrid这些专业的图表数据显示插件可以完成,当然也可以在JSP页面用普通的<table>标签实现

因为我没有转载DB2 所以没有办法帮你写出具体的sql语句,也不能测试我oracle 为例吧

1不管java 连接那个数据库都是一样的

ClassforName(dir);

String url = "";//数据库名,用户名和密码

Connection conn = DriverManagergetConnection(url);

Statement stat = conncreateStatement();

// 执行你想要执行的sql语句下面是查询,修改和删除有点不一样

ResultSet rs = statexecuteQuery(sql);

你可以通过select table_name from user_tables; 这个sql语句查询才出数据库里面所有的表

再通过 select from ALL_TAB_COLS A where lower(ATable_Name) = '表名' 查询出某一个表的相关信息这样是有点繁琐,不过不失为一种解决方法

2 读取数据就更容易了

直接执行select 就可以了

3 帮刚刚读出来的表结构组装成建表语句 create 一下就可以了

4关于数据类型我也不是很清楚,你可以在网上查一查db2有哪些数据类型然后在建表的时候做一下儿转换就可以了

5你说的也就是把刚刚查询出来的数据插入到数据库中insert 就可以了

其实java *** 作数据库很简单的不同于c查询出来后,做适当的组装处理就可以得到你想要的结果

希望对你有帮助

//建立数据库连接类

import javasqlConnection;

import javasqlDriverManager;

import javasqlSQLException;

public class Utilities {

public static Connection getConnection() {

Connection con = null;

try {

ClassforNam("oraclejdbcdriverOracleDriver");

con = DriverManagergetConnection ("jdbc:mysql://localhost:8080/auction", "scott", "tiger");//这里是数据库连接主机的地址数据库端口库名,帐户密码

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

return con;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

}

}

然后通过这个连接来提取数据库中的数据 实现业务流程

package auctiondaoimpl;

import javasqlConnection;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

import javautilArrayList;

import javautilList;

import auctiondaoAuctionUserDao;

import auctionexceptionAuctionException;

import auctionmodelAuctionUser;

import auctionUtilitiesUtilities;

public class AuctionUserDaoJDBCImpl {

public void delete(AuctionUser user) {

Connection con = null;

PreparedStatement ps = null;

try {

con = UtilitiesgetConnection();

consetAutoCommit(false);

ps = conprepareStatement("delete from auction_user where user_id=");

pssetInt(1, usergetId());

psexecute();

concommit();

} catch (Exception e) {

eprintStackTrace();

try {

conrollback();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1printStackTrace();

}

} finally {

if(ps != null) {

try {

psclose();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

if(con != null) {

try {

conclose();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

}

}

如果需要将数据库中的文件导入到电子表格,我也没做过,我引用一下别人的东西。如下

创建Excel 文档

示例1将演示如何利用Jakarta POI API 创建Excel 文档。

示例1程序如下:

import orgapachepoihssfusermodelHSSFWorkbook;

import orgapachepoihssfusermodelHSSFSheet;

import orgapachepoihssfusermodelHSSFRow;

import orgapachepoihssfusermodelHSSFCell;

import javaioFileOutputStream;

public class CreateXL {

/ Excel 文件要存放的位置,假定在D盘JTest目录下/

public static String outputFile="D:/JTest/ gongyexls";

public static void main(String argv[]){

try{

// 创建新的Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 在Excel工作簿中建一工作表,其名为缺省值

// 如要新建一名为"效益指标"的工作表,其语句为:

// HSSFSheet sheet = workbookcreateSheet("效益指标");

HSSFSheet sheet = workbookcreateSheet();

// 在索引0的位置创建行(最顶端的行)

HSSFRow row = sheetcreateRow((short)0);

//在索引0的位置创建单元格(左上端)

HSSFCell cell = rowcreateCell((short) 0);

// 定义单元格为字符串类型

cellsetCellType(HSSFCellCELL_TYPE_STRING);

// 在单元格中输入一些内容

cellsetCellValue("增加值");

// 新建一输出文件流

FileOutputStream fOut = new FileOutputStream(outputFile);

// 把相应的Excel 工作簿存盘

workbookwrite(fOut);

fOutflush();

// *** 作结束,关闭文件

fOutclose();

Systemoutprintln("文件生成");

}catch(Exception e) {

Systemoutprintln("已运行 xlCreate() : " + e );

}

}

}

读取Excel文档中的数据

示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongyexls的Excel文件。

示例2程序如下:

import orgapachepoihssfusermodelHSSFWorkbook;

import orgapachepoihssfusermodelHSSFSheet;

import orgapachepoihssfusermodelHSSFRow;

import orgapachepoihssfusermodelHSSFCell;

import javaioFileInputStream;

public class ReadXL {

/ Excel文件的存放位置。注意是正斜线/

public static String fileToBeRead="D:/JTest/ gongyexls";

public static void main(String argv[]){

try{

// 创建对Excel工作簿文件的引用

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

// 创建对工作表的引用。

// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")

HSSFSheet sheet = workbookgetSheet("Sheet1");

// 也可用getSheetAt(int index)按索引引用,

// 在Excel文档中,第一张工作表的缺省索引是0,

// 其语句为:HSSFSheet sheet = workbookgetSheetAt(0);

// 读取左上端单元

HSSFRow row = sheetgetRow(0);

HSSFCell cell = rowgetCell((short)0);

// 输出单元内容,cellgetStringCellValue()就是取所在单元的值

Systemoutprintln("左上端单元是: " + cellgetStringCellValue());

}catch(Exception e) {

Systemoutprintln("已运行xlRead() : " + e );

}

}

}

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

1、创建字体,设置其为红色、粗体:

HSSFFont font = workbookcreateFont();

fontsetColor(HSSFFontCOLOR_RED);

fontsetBoldweight(HSSFFontBOLDWEIGHT_BOLD);

2、创建格式

HSSFCellStyle cellStyle= workbookcreateCellStyle();

cellStylesetFont(font);

3、应用格式

HSSFCell cell = rowcreateCell((short) 0);

cellsetCellStyle(cellStyle);

cellsetCellType(HSSFCellCELL_TYPE_STRING);

cellsetCellValue("标题 ");

1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称INFORMATION_SCHEMATABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbosysobjectsname as Table_name, dbosyscolumnsname AS Column_name FROM dbosyscolumns INNER JOIN dbosysobjects ON dbosyscolumnsid = dbosysobjectsid Where (dbosysobjectsxtype = 'u') AND (NOT (dbosysobjectsname LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused ''" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count() 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束L = 日志FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程S = 系统表TF = 表函数

TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjectsname from sysobjectsxtype ='U';SELECT name

WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status>0,即:select from sysobjects where xtype='U' and status>0

以上就是关于java 如何获取 mysql数据库中表格的总记录数全部的内容,包括:java 如何获取 mysql数据库中表格的总记录数、如何用java实现将execl表格导入到数据库中、java怎么将excel表格数据导入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10161078.html

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

发表评论

登录后才能评论

评论列表(0条)

保存