jxlを使用してexcelのデータをデータベースにインポート
今日、あるお客様がexcelテーブルをくれました.データをデータベースにインポートしてください.
私のここで主に実現した思想は
1、excel表のデータを抽出する
2、excelの列属性に対応するオブジェクトを作成する
2、各行のデータを作成したオブジェクトにカプセル化する
3、すべてのオブジェクトをリストに入れる
4、リストをデータベースに保存する oh oh!
PS:個人的にサボって、すべての方法を一つのクラスに書きました(実体クラスを除く)
コードの貼り付けを開始します.
主な操作クラス:Util.java
エンティティークラス:CiaOB.java
私のここで主に実現した思想は
1、excel表のデータを抽出する
2、excelの列属性に対応するオブジェクトを作成する
2、各行のデータを作成したオブジェクトにカプセル化する
3、すべてのオブジェクトをリストに入れる
4、リストをデータベースに保存する oh oh!
PS:個人的にサボって、すべての方法を一つのクラスに書きました(実体クラスを除く)
コードの貼り付けを開始します.
主な操作クラス:Util.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class Util {
public Connection getConn() {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // JDBC
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=gdaudit"; // sample
String userName = "sa"; //
String userPwd = "123"; //
Connection dbConn = null;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); //
} catch (Exception e) {
e.printStackTrace();
}
return dbConn;
}
public List<CiaBO> getBO() {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
String filePath = "d:/test.xls";
InputStream fs = null;
Workbook workBook = null;
try {
// excel
fs = new FileInputStream(filePath);
// workbook
workBook = Workbook.getWorkbook(fs);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Sheet sheet = workBook.getSheet(0);// sheet , 0
Cell cell0 = null;//
Cell cell1 = null;//
List<CiaBO> ciaList = new ArrayList<CiaBO>();
// 602
for (int i = 0; i < 77; i++) {
CiaBO bo = new CiaBO();
//
cell0 = sheet.getCell(0, i);
//
cell1 = sheet.getCell(1, i);
bo.setId(i+603);
bo.setName(cell0.getContents());
bo.setNumber(cell1.getContents());
ciaList.add(bo);
}
workBook.close();//
return ciaList;
}
public void save(List<CiaBO> list){
try {
String sql = "insert into tb*****(id,name,***,***) values(?,?,?,?)";
PreparedStatement prest = new Util().getConn().prepareStatement(sql);
for(int x = 0; x < list.size(); x++){
prest.setInt(1, list.get(x).getId());
prest.setString(2, list.get(x).getName());
prest.setString(3,list.get(x).getNumber());
prest.setString(4, null);
prest.addBatch();
}
prest.executeBatch();
} catch (Exception ex) {
ex.printStackTrace();
}finally{
}
}
public static void main(String args[]){
Util db = new Util();
List<CiaBO> list = db.getBO();
for (CiaBO ciaBO : list) {
System.out.println(ciaBO.toString());
}
db.save(list);
}
}
エンティティークラス:CiaOB.java
public class CiaBO {
private int id;
private String name;
private String number;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
@Override
public String toString() {
return "CiaBO [id=" + id + ", name=" + name + ", number=" + number
+ "]";
}
}