當前位置:首頁 » 網頁前端 » java導出資料庫的腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java導出資料庫的腳本

發布時間: 2022-07-16 06:38:46

1. 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命令。

2. 用JAVA生成資料庫SQL腳本

java可以調用cmd命令,利用sql server2000 的命令就可以生成SQL腳本了

3. 怎樣實現java導入導出oracle資料庫

oracle
資料庫導入導出(用dmp的方法)
cmd
1
將資料庫SampleDB完全導出,用戶名system
密碼manager
導出到E:\SampleDB.dmp中
exp
file=E:\sampleDB.dmp
full=y
2將備份資料庫文件中的數據導入指定的資料庫SampleDB
中,如果
SampleDB
已存在該表,則不再導入;
imp
file=D:\SampleDB.dmp
full=y
ignore=y
如果沒有DBA許可權,用以下命令授予DBA許可權
sqlplus
/
as
sysdba;
conn
system/manager
sql>grant
dba
to
SampleDB

4. 請教:java從資料庫獲取數據導出docx,有多個表格,請問怎麼導出

第一步:如何用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"));
}

5. 如何用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"));
}

6. java如何根據實體類圖生成sql腳本

自動生成C#和Java實體類,自動生連接符為「&」和「+」的INSERT,UPDATE,DELETE,SELECT語句,支持簡單的數據查詢修改。

7. 我下載了兩個java web項目源碼,附帶了一個mysql資料庫創建腳本:creat.txt

下載一個 Navicat for MySQL,這是個可視化的Mysql客戶端。
配置mysql好伺服器連接後
1把文件擴展名改為.sql。右擊Navicat for MySQL工具左側連接,選中運行批次任務,找到creat.sql文件,點開始。 或者你在cmd中運行mysql客戶端,txt中的東西復制進去執行。
2,一般一個文件是一個項目的資料庫吧? 如果他放在一個裡面了, 那沒辦法,只能手動去挑。或者都創建,沒害處。
3,右擊Navicat for MySQL工具左側連接中你要導出的資料庫,轉存sql文件。

8. 怎麼用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