當前位置:首頁 » 編程語言 » java導出資料庫數據

java導出資料庫數據

發布時間: 2022-08-09 09:17:34

java怎麼把資料庫的數據取出來

java 對讀取資料庫的數據可以顯示在網頁上,可以對數據進行分類,保存到其它資料庫或者是文件里等,當然前提就是要把數據讀取出來

以讀取數據為例:

解析:

  1. 上面代碼就是首先注冊驅動,然後進行連接

  2. 如果連接成功

  3. 就可以用select語句進行執行並讀取了

Ⅱ Java怎樣將資料庫中數據導出為Excel文件,求完整例子附帶資料庫。

下面是我寫的一個運用jxl生成Excel文件的方法
該方法接收一個保存MarkesData數據的ArrayList arlist和文件生成路徑Path
通過取得arlist里的數據生成Excel文件
感覺應該是你想要的 我沒調試過也許有錯 你也可以根據你的需要進行修改^_^

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class WriteExcel {

WritableWorkbook book=null;

public void OutputExcel(ArrayList arlist,String Path){
try{
book = Workbook.createWorkbook(new File(Path));
//設置表名
WritableSheet sheet = book.createSheet("考試單",0);
//生成表格題頭
Label labe1 = new Label(0, 0, "考生姓名" );
Label labe2 = new Label(1, 0, "地區");
Label labe3 = new Label(2, 0, "所屬院校");
Label labe4 = new Label(3, 0, "班級");
Label labe5 = new Label(4, 0, "考試號");
Label labe6 = new Label(5, 0, "考試時間");
Label labe7 = new Label(6, 0, "科目名稱");

//將生成的單元格添加到工作表中
sheet.addCell(labe1);
sheet.addCell(labe2);
sheet.addCell(labe3);
sheet.addCell(labe4);
sheet.addCell(labe5);
sheet.addCell(labe6);
sheet.addCell(labe7);

Iterator it = arlist.iterator();
int i = 1;

while(it.hasNext()){
//通過迭代獲得arlist里的MarkesData對象
MarkesData temp = (MarkesData)it.next();

//取得數據生成單元格
Label label1=new Label(0,i,temp.getUser_name());
Label label2=new Label(1,i,temp.getArea_name());
Label label3=new Label(2,i,temp.getCollege_name());
Label label4=new Label(3,i,temp.getClass_name());
Label label5=new Label(4,i,temp.getTest_name());
Label label6=new Label(5,i,temp.getStarttime());
Label label7=new Label(6,i,temp.getSubject_name());

//將生成的單元格添加到工作表中
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
sheet.addCell(label5);
sheet.addCell(label6);
sheet.addCell(label7);

i++;
}
book.write();
book.close();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
if(book!=null)book.close();
}catch(Exception e){
System.out.println("exception when closing Connection in finally");
System.out.println(e.getMessage().toString());
}
}
}
}

Ⅲ 如何用java將資料庫中的表導出到excel

第一步:如何用POI操作Excel

@Test
public void createXls() throws Exception{
//聲明一個工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//聲明表
HSSFSheet sheet = wb.createSheet("第一個表");
//聲明行
HSSFRow row = sheet.createRow(7);
//聲明列
HSSFCell cel = row.createCell(3);
//寫入數據
cel.setCellValue("你也好");

FileOutputStream fileOut = new FileOutputStream("d:/a/b.xls");
wb.write(fileOut);
fileOut.close();
}

第二步:導出指定資料庫的所有表
分析:
1:某個數資料庫有多少表,表名是什麼?―――DataBaseMetadate.getMetadate().getTables(null,null,null,new String[]{Table}); - excel的文件名稱。
2:對每一個表進行select * 操作。-每一個sheet的名稱。
3:分析表結構,rs.getMetadate(); ResultSetMedated
4:多個列,列名是什麼.-欄位名就是sheet的第一行信息。
5:獲取每一行的數據 – 放到sheet第一行以後。

@Test
public void export() throws Exception{
//聲明需要導出的資料庫
String dbName = "focus";
//聲明book
HSSFWorkbook book = new HSSFWorkbook();
//獲取Connection,獲取db的元數據
Connection con = DataSourceUtils.getConn();
//聲明statemen
Statement st = con.createStatement();
//st.execute("use "+dbName);
DatabaseMetaData dmd = con.getMetaData();
//獲取資料庫有多少表
ResultSet rs = dmd.getTables(dbName,dbName,null,new String[]{"TABLE"});
//獲取所有表名-就是一個sheet
List<String> tables = new ArrayList<String>();
while(rs.next()){
String tableName = rs.getString("TABLE_NAME");
tables.add(tableName);
}
for(String tableName:tables){
HSSFSheet sheet = book.createSheet(tableName);
//聲明sql
String sql = "select * from "+dbName+"."+tableName;
//查詢數據
rs = st.executeQuery(sql);
//根據查詢的結果,分析結果集的元數據
ResultSetMetaData rsmd = rs.getMetaData();
//獲取這個查詢有多少行
int cols = rsmd.getColumnCount();
//獲取所有列名
//創建第一行
HSSFRow row = sheet.createRow(0);
for(int i=0;i<cols;i++){
String colName = rsmd.getColumnName(i+1);
//創建一個新的列
HSSFCell cell = row.createCell(i);
//寫入列名
cell.setCellValue(colName);
}
//遍歷數據
int index = 1;
while(rs.next()){
row = sheet.createRow(index++);
//聲明列
for(int i=0;i<cols;i++){
String val = rs.getString(i+1);
//聲明列
HSSFCell cel = row.createCell(i);
//放數據
cel.setCellValue(val);
}
}
}
con.close();
book.write(new FileOutputStream("d:/a/"+dbName+".xls"));
}

Ⅳ java怎麼把資料庫的內容導出到excel表裡面

第一步:如何用POI操作Excel

@Test
public void createXls() throws Exception{
//聲明一個工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//聲明表
HSSFSheet sheet = wb.createSheet("第一個表");
//聲明行
HSSFRow row = sheet.createRow(7);
//聲明列
HSSFCell cel = row.createCell(3);
//寫入數據
cel.setCellValue("你也好");

FileOutputStream fileOut = new FileOutputStream("d:/a/b.xls");
wb.write(fileOut);
fileOut.close();
}

第二步:導出指定資料庫的所有表
分析:
1:某個數資料庫有多少表,表名是什麼?―――DataBaseMetadate.getMetadate().getTables(null,null,null,new String[]{Table}); - excel的文件名稱。
2:對每一個表進行select * 操作。-每一個sheet的名稱。
3:分析表結構,rs.getMetadate(); ResultSetMedated
4:多個列,列名是什麼.-欄位名就是sheet的第一行信息。
5:獲取每一行的數據 – 放到sheet第一行以後。

@Test
public void export() throws Exception{
//聲明需要導出的資料庫
String dbName = "focus";
//聲明book
HSSFWorkbook book = new HSSFWorkbook();
//獲取Connection,獲取db的元數據
Connection con = DataSourceUtils.getConn();
//聲明statemen
Statement st = con.createStatement();
//st.execute("use "+dbName);
DatabaseMetaData dmd = con.getMetaData();
//獲取資料庫有多少表
ResultSet rs = dmd.getTables(dbName,dbName,null,new String[]{"TABLE"});
//獲取所有表名-就是一個sheet
List<String> tables = new ArrayList<String>();
while(rs.next()){
String tableName = rs.getString("TABLE_NAME");
tables.add(tableName);
}
for(String tableName:tables){
HSSFSheet sheet = book.createSheet(tableName);
//聲明sql
String sql = "select * from "+dbName+"."+tableName;
//查詢數據
rs = st.executeQuery(sql);
//根據查詢的結果,分析結果集的元數據
ResultSetMetaData rsmd = rs.getMetaData();
//獲取這個查詢有多少行
int cols = rsmd.getColumnCount();
//獲取所有列名
//創建第一行
HSSFRow row = sheet.createRow(0);
for(int i=0;i<cols;i++){
String colName = rsmd.getColumnName(i+1);
//創建一個新的列
HSSFCell cell = row.createCell(i);
//寫入列名
cell.setCellValue(colName);
}
//遍歷數據
int index = 1;
while(rs.next()){
row = sheet.createRow(index++);
//聲明列
for(int i=0;i<cols;i++){
String val = rs.getString(i+1);
//聲明列
HSSFCell cel = row.createCell(i);
//放數據
cel.setCellValue(val);
}
}
}
con.close();
book.write(new FileOutputStream("d:/a/"+dbName+".xls"));
}

Ⅳ 如何利用java輸出一個資料庫表的內容

主要的幾個點:
1、確定表有多少行。
2、按表的行數畫表格。

給你個示列

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.beans.Statement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Vector;

Ⅵ 在java開發中,我需要把資料庫裡面的東西導出,生成一個excel文件,在導出的數據中,有一列是查

SERVER、ACCESS、EXCEL數據轉換,詳細說明如下:

一、SQL SERVER 和ACCESS的數據導入導出
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL Server,你可以使用這些步驟:
○1在SQL SERVER企業管理器中的Tools(工具)菜單上,選擇Data Transformation
○2Services(數據轉換服務),然後選擇 czdImport Data(導入數據)。
○3在Choose a Data Source(選擇數據源)對話框中選擇Microsoft Access as the Source,然後鍵入你的.mdb資料庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。
○4在Choose a Destination(選擇目標)對話框中,選擇Microsoft OLEDB Prov ider for SQLServer,選擇資料庫伺服器,然後單擊必要的驗證方式。
○5在Specify Table Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy tables(復製表格)。
○6在Select Source Tables(選擇源表格)對話框中,單擊Select All(全部選定)。下一步,完成。

Ⅶ 如何用java實現mysql資料庫的導入導出

MySql導出資料庫的命令如下:
Sql代碼
mysqlmp -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath
mysqlmp -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath

利用Java調用命令窗口執行命令來進行MySql導入資料庫一般分三步走:
第一步:登錄Mysql資料庫,在登錄資料庫的時候也可以指定登錄到哪個資料庫,如果指定了則可以跳過第二步;
第二步:切換資料庫到需要導入的目標資料庫
第三步:利用命令開始導入

在進行導出的時候,需要注意命令語句的運行環境,如果已經將mysql安裝路徑下的bin加入到
系統的path變數中,那麼在導出的時候可以直接使用命令語句,否則,就需要在執行命令語句的
時候加上命令所在位置的路徑,即mysql安裝路徑想的bin下的mysqlmp命令。

Ⅷ java怎麼把資料庫里的數據提取出來

:在資料庫提取部分數據,在JSP上顯示的做法如下:思路:1、創建db連接2、創建statement3、執行查詢4、遍歷結果並展示完整代碼如下:<spanstyle="font-size:...

Ⅸ 怎麼用java實現mysql資料庫的導入導出

使用Java實現對MySql資料庫的導入與導出
packagecom.project.ajaxs;
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.Calendar;
importjava.util.Date;
publicclassBakMysql{
//main的方法,主要是我用於測試的,是想著取得CLASS的路徑,然後備份的文件寫在伺服器的類路徑下
publicstaticvoidmain(String[]args){
BakMysqlbk=newBakMysql();

bk.backup();
//bk.load();
}

//backup方法是備份資料庫到伺服器地址
publicvoidbackup(){
Calendarnow=Calendar.getInstance();
Stringname=now.getTime()+""+(now.getTime().getMonth()+1)+""+now.getTime().getDate();
Stringfilename=name.substring(24)+""+name.substring(11,13)+""+name.substring(14,16)+""+name.substring(17,19);
try{
StringfilePath="e:/project"+filename+".sql";
Runtimert=Runtime.getRuntime();
//調用mysql的cmd:
Processchild=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysqlmp.exe-uroot-p8095longchunproject");//設置導出編碼為utf8。這里必須是utf8
//注意這一句,是指運行mysqlmp命令,後面跟的是登錄名和登錄的密碼,接著後面的是指備份的資料庫的名字,到此結束,以此生成一個執行的進程,取得此進程的輸出流到我們要備份的文件
//把進程執行中的控制台輸出信息寫入.sql文件,即生成了備份文件。註:如果不對控制台信息進行讀出,則會導致進程堵塞無法運行
InputStreamin=child.getInputStream();//控制台的輸出信息作為輸入流

InputStreamReaderxx=newInputStreamReader(in,"utf-8");//設置輸出流編碼為utf8。這里必須是utf8,否則從流中讀入的是亂碼

StringinStr;
StringBuffersb=newStringBuffer("");
StringoutStr;
//組合控制台輸出信息字元串
BufferedReaderbr=newBufferedReader(xx);
while((inStr=br.readLine())!=null){
sb.append(inStr+" ");

}
outStr=sb.toString();//備份出來的內容是一個字條串

//要用來做導入用的sql目標文件:
FileOutputStreamfout=newFileOutputStream(filePath);
OutputStreamWriterwriter=newOutputStreamWriter(fout,"utf8");
writer.write(outStr);//寫文件
//註:這里如果用緩沖方式寫入文件的話,會導致中文亂碼,用flush()方法則可以避免
writer.flush();
//別忘記關閉輸入輸出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
}catch(Exceptione){
e.printStackTrace();
}
}
//資料庫的導入
publicvoidload(){
try{
StringfPath="e:/aa.sql";
Runtimert=Runtime.getRuntime();
Processchild=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysqladmin.exe-uroot-p8095longchuncreateproject");
Processchild1=rt.exec("C:/ProgramFiles/MySQL/MySQLServer5.0/bin/mysql.exe-uroot-p8095longchunproject");
OutputStreamout=child1.getOutputStream();//控制台的輸入信息作為輸出流
StringinStr;

StringBuffersb=newStringBuffer("");
StringoutStr;

BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(fPath),"utf-8"));
while((inStr=br.readLine())!=null){
sb.append(inStr+" ");

}
outStr=sb.toString();

OutputStreamWriterwriter=newOutputStreamWriter(out,"utf8");
writer.write(outStr);

//註:這里如果用緩沖方式寫入文件的話,會導致中文亂碼,用flush()方法則可以避免
writer.flush();
out.close();
br.close();
writer.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}

原文來自http://www.cnblogs.com/anxz/archive/2012/11/19/2777782.html

熱點內容
如何更衣櫃密碼鎖密碼設置 發布:2024-03-28 19:42:09 瀏覽:483
如何將一台電腦當雲伺服器嗎 發布:2024-03-28 19:22:39 瀏覽:882
銀行dsk密碼什麼意思 發布:2024-03-28 19:22:35 瀏覽:10
我的世界伺服器怎麼解除ban人 發布:2024-03-28 19:21:47 瀏覽:828
ss怎麼用安卓 發布:2024-03-28 18:51:39 瀏覽:688
腳本注入到其他軟體運行 發布:2024-03-28 18:30:02 瀏覽:721
網易我的世界皮膚能用到伺服器嗎 發布:2024-03-28 18:24:44 瀏覽:805
access資料庫數據類型 發布:2024-03-28 18:16:04 瀏覽:301
安卓界面如何變成蘋果手機界面 發布:2024-03-28 18:07:17 瀏覽:742
方舟手游如何卡安卓大廳會員 發布:2024-03-28 17:52:37 瀏覽:241