為了把Excel導(dǎo)入數(shù)據(jù)庫(kù)寫了這個(gè)這段程序,大概思路解釋一下
:因?yàn)閷?dǎo)入數(shù)據(jù)庫(kù)時(shí)字段類型和長(zhǎng)度、還有字段數(shù)都是未知的,所以導(dǎo)入時(shí)用了通用的字段類型,在這里用了text,根據(jù)需要可以自行定制字段名,類型。這只是個(gè)簡(jiǎn)單的例子 如果常常遇到此類問題的我建議寫個(gè)導(dǎo)入你所想見的表格屬性的配置文件(xml或property文件都可以),這樣靈活性更強(qiáng)了。
為互助等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及互助網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、互助網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
還有一種更為好的辦法,把要導(dǎo)入的Excel文件另存為xml文件,
這樣就會(huì)變成xml to database ,想導(dǎo)入就容易咯
有什么不明白可以參考:全面挖掘Java Excel API 使用方法
從Excel表格導(dǎo)入msyql的例子代碼
import java.io.*;
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 jxl.*;
public class test{
static String createTableSql="";//創(chuàng)建數(shù)據(jù)庫(kù)的sql
static String colType="TEXT";//字段類型
static String key="id";//主鍵
static String charSet="utf8";//表格字符類型
static String ENGINE="InnoDB";//表格類型
static String tableName="tempExcelToMySQL";//表名稱
static String colName="col";默認(rèn)字段名
static Connection conn = null;
public static void main(String args[]){
try
{
// 構(gòu)建Workbook對(duì)象, 只讀Workbook對(duì)象
// 直接從本地文件創(chuàng)建Workbook
// 從輸入流創(chuàng)建Workbook
System.out.println("start load file-------------------------");
InputStream is = new FileInputStream("E:/users.xls");//創(chuàng)建輸入
jxl.Workbook rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0); //讀取第一個(gè)sheet
int colNum=rs.getColumns();//列數(shù)
int rowNum=rs.getRows();//行數(shù)
System.out.println("colNum rowNum------------------"+rowNum+","+colNum);
System.out.println("start create base-------------------------");
getConntion();
String tableSql=getCreateTableSql(rowNum,colNum);
Statement st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.execute(tableSql);
st.close();
System.out.println("create base end -------------------------");
String sql=getColName(rowNum,colNum);
PreparedStatement ps=null;
String strValue="";
ps=conn.prepareStatement(sql);
for(int i=0;i
for(int j=0;j
strValue=c.getContents();
ps.setString(j+1,strValue);
}
ps.addBatch();
}
ps.executeBatch();
conn.commit();
if(ps!=null){
ps.close();
}
System.out.println(" insert end-------------------------");
close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
static String getCreateTableSql(int rowNum,int colNum)
{
//可以做成可配置文件
createTableSql="create table "+tableName+"( `"+key+"` bigint(12) NOT NULL auto_increment, ";
String temp="";
for(int j=0;j
}
createTableSql=createTableSql+" "+temp+" PRIMARY KEY (`"+key+"`)" +
") ENGINE="+ENGINE+" DEFAULT CHARSET="+charSet+";";
return createTableSql;
}
static String getColName(int rowNum,int colNum)
{
//可以做成可配置文件
String colSql="";
String colValue="";
for(int j=0;j
colValue=colValue+""+"?,";
}
return "insert into "+tableName+" ("+colSql.substring(0,colSql.lastIndexOf(","))+")values("+colValue.substring(0,colValue.lastIndexOf(","))+")";
}
static void getConntion()
{
try {
String driver_class = "com.mysql.jdbc.Driver";
String connection_url = "jdbc:mysql://localhost:3306/webserve?useUnicode=true&characterEncoding=utf-8";
String user_name = "root";
String db_password = "123";
Class.forName(driver_class);
conn = DriverManager.getConnection(connection_url, user_name,db_password);
}catch(Exception e){
e.printStackTrace();
}
}
static void close()
{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
[@more@]
當(dāng)前名稱:從Excel到導(dǎo)入MYSQL數(shù)據(jù)庫(kù)
文章來源:http://jinyejixie.com/article36/poeosg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、網(wǎng)站建設(shè)、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)