数据库导入导出

数据库导入代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WriteException;

public class Export3 {


String dbDriver="org.gjt.mm.mysql.Driver";
String url = "";
String user = "";
String passwordOfDB = ""; //������ݿⲢ��֤���
private static int ExpTable(Connection oConn,String FileName,String []TableName,int maxRowCount)
{
jxl.write.WritableWorkbook wwb=null;
jxl.write.WritableSheet wa=null;
OutputStream outf=null;
try {

File myFilePath=new File(FileName);
if(!myFilePath.exists())
myFilePath.createNewFile();
FileWriter resultFile=new FileWriter(myFilePath);
PrintWriter myFile=new PrintWriter(resultFile);
resultFile.close();
outf = new FileOutputStream(FileName);
wwb = Workbook.createWorkbook(outf);
wa = wwb.createSheet("main", 0);
wa.addCell(new Label(0,0,"tablename"));
wa.addCell(new Label(1,0,"datasheet"));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int n=1;
int a=0;

for (int m = 0; m < TableName.length; m++)
{
String sql = "select * from "+TableName[m];
PreparedStatement stmt=null;
ResultSet rs = null;
try
{
stmt=oConn.prepareStatement(sql);
rs=stmt.executeQuery(sql);
int pagecount=0;
jxl.write.WritableSheet ws = null;


int nColmnCount=rs.getMetaData().getColumnCount();
int index = 0;
int headercount=0;
boolean bHasnext=false;
while((bHasnext=rs.next())||headercount==0){

if(ws==null||index==0)
{
pagecount++;
ws=wwb.createSheet(TableName[m]+pagecount, pagecount);
wa.addCell(new Label(0,a+1,TableName[m]));
wa.addCell(new Label(1,a+1,TableName[m]+pagecount));
a++;
for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {
String ColName=rs.getMetaData().getColumnName(k+1);
String ColType=rs.getMetaData().getColumnTypeName(k+1);
ws.addCell(new Label(k,0,ColName+"/"+ColType));
}
index=0;
headercount++;
}
index++;
for (int k = 0; bHasnext&&k < nColmnCount; k++) {
ws.addCell(new Label(k,index,rs.getString(k+1)));
}
if(index>=maxRowCount)
{
index=0;
}
}

}catch(Exception e){e.printStackTrace();}
finally{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(stmt!=null)
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {

wwb.write();
wwb.close();
outf.close();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n;
}
public Export3(String dbDriver,String url,String user,String passwordOfDB)
{
this.dbDriver=dbDriver;
this.url=url;
this.user=user;
this.passwordOfDB=passwordOfDB;
try {
Class.forName(dbDriver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public int ExpTable(String FileName,String []TableName,int maxRowCount)
{
Connection oConn=null;
try{
oConn = DriverManager.getConnection(url, user, passwordOfDB);
} catch (Exception ex)
{ ex.printStackTrace();
return -1;
}
int cnt=ExpTable(oConn,FileName,TableName,maxRowCount);
try {
oConn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cnt;
}
// public static void main(String [] argv)
// {
//
// Export3 aa=new Export3
// ("org.gjt.mm.mysql.Driver",
// "jdbc:mysql://10.4.116.12:3306/radius",
// "root","123456");
// String []TableName={"sys_login_rec_t","department_t"};
// aa.ExpTable("d:\\mmm.xls",TableName,20);
// }
}

数据库导出代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class Import {

String dbDriver="org.gjt.mm.mysql.Driver";
String url = "";
String user = "";
String passwordOfDB = "";
private static int ImpTable(Connection oConn,String FileName,String[] TableName) throws SQLException{
HashMap<String,List<String>> oTabSheets=new HashMap<String,List<String>>();
Statement stmt=null;
PreparedStatement pstmt=null;
try {

InputStream is = new FileInputStream(FileName);
Workbook book=Workbook.getWorkbook(is);
//Workbook book = Workbook.getWorkbook( new File("D:\\kl.xls "));
//获得第一个工作表对象
Sheet sheet = book.getSheet("main");

for(int i=1;i<sheet.getRows();i++)
{
Cell cell=sheet.getCell(0, i);
String sTablename=cell.getContents();
cell=sheet.getCell(1, i);
String sSheet=cell.getContents();
List<String> curSheet=oTabSheets.get(sTablename);
if(curSheet==null)
{
curSheet=new ArrayList<String>();
oTabSheets.put(sTablename, curSheet);
}
curSheet.add(sSheet);
}

for(int i=0;i<TableName.length;i++)
{
List<String> curSheet=oTabSheets.get(TableName[i]);
stmt=oConn.createStatement();
stmt.executeUpdate("truncate table "+TableName[i] );
stmt.close();
stmt=null;

for(int n=0;n<curSheet.size();n++)
{
String sheetname=curSheet.get(n);
Sheet sheett = book.getSheet(sheetname);
//拿到列,行
int column=sheett.getColumns();
int row=sheett.getRows();
//拿到每一行,每列的值
String inssql="insert into "+TableName[i] +" (";
String sqlvalues=" values (";
for(int j=0;j<column;j++){
Cell colName=sheett.getCell(j,0 );
//Cell colType=sheett.getCell(j,1);
//System.out.println();
if(j>0)
inssql+=",";
String sColName=colName.getContents();
int pos=sColName.indexOf('/');
if(pos>=0)
{
sColName=sColName.substring(0,pos);
}
inssql+=sColName;
if(j>0)
sqlvalues+=",";
sqlvalues+="?";
}
inssql=inssql+") "+sqlvalues+")";
pstmt=oConn.prepareStatement(inssql);
System.out.println(inssql);
for(int k=1;k<row;k++){
for(int j=0;j<column;j++){
Cell col=sheett.getCell( j,k);
System.out.println(col.getContents());
String val=col.getContents();
if(val!=null&&val.length()>0)
pstmt.setString(j+1, val);
else
pstmt.setString(j+1,null);
}
pstmt.execute();
}
pstmt.close();
pstmt=null;
}
}
book.close();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(stmt!=null)
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pstmt!=null)
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return 0;
}
public Import (String dbDriver,String url,String user,String passwordOfDB)
{
this.dbDriver=dbDriver;
this.url=url;
this.user=user;
this.passwordOfDB=passwordOfDB;
try {
Class.forName(dbDriver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public int ImpTable(String FileName,String[] TableName)
{
Connection oConn=null;
try{
oConn = DriverManager.getConnection(url, user, passwordOfDB);
Statement stmt=oConn.createStatement();
stmt.execute("set names 'utf8'");
stmt.close();
int cnt=ImpTable(oConn,FileName,TableName);
} catch (Exception ex)
{ ex.printStackTrace();
return -1;
}
try {
oConn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}

//public static void main(String [] argv)
//{
// Import bb=new Import
// ("org.gjt.mm.mysql.Driver",
// "jdbc:mysql://10.4.116.12:3306/radius",
// "root","123456");
// String []TableName={"sys_login_rec3_t","department3_t"};
// bb.ImpTable("d:\\kl.xls",TableName);
//
//}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值