首先要把db2jcc4.jar和db2jcc_license_cu.jar導入,再將POI的jar包導入,因為后面要操作excel。
package xxx.xxx.xxx;
import java.sql.Connection;
public interface IConn {
Connection getConn();
}
----------------------------
package xxx.xxx.xxx;
import java.sql.Connection;
import java.sql.DriverManager;
public class DB2Conn implements IConn{
private static final String DBDRIVER = "com.ibm.db2.jcc.DB2Driver" ;
private static final String DBURL = "jdbc:db2://x.xxx.xxx.xxx:50000/waadb" ;
private static final String DBUSER = "db2inst1" ;
private static final String DBPASS = "xxxxxxxx";
private Connection conn=null;
@Override
public Connection getConn() {
// TODO Auto-generated method stub
try {
Class.forName(DBDRIVER).newInstance();
this.conn = (Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);
// System.out.println("Succedded");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("Driver");
e.printStackTrace();
}
return conn;
}
}
---------------------------------------------------------------------
package xxx.xxx.xxx;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class TestConn {
private static final String DATE = "2017-xx-xx";
public static void main(String[] args) {
// TODO Auto-generated method stub
createReport();
}
private static void createReport() {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
IConn iconn=new DB2Conn();
conn=iconn.getConn();
String sql="SELECT TYPE, TO_CHAR(CREATETIME,'YYYY-MM-DD HH24:MI:SS') FROM QUERY_HISTORY WHERE CREATETIME LIKE '" + DATE + "%' ORDER BY CREATETIME DESC "; //查詢結果為一個兩列的數據,所以存到list並轉換成二維數組。
List<String> list=new ArrayList<>();
try {
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
list.add(rs.getString(1));
list.add(rs.getString(2));
// System.out.println(rs.getString(1)+"|"+rs.getString(2));
}
// System.out.println(list);
//將數據存在一維數組里面
if(list != null && list.size()>0){
String[] str=new String[list.size()];
for(int i=0;i<list.size();i++){
str [i] = list.get(i);
}
//講一維數組轉成二維數組
String[][] str2=new String[str.length/2][2];
int k=0;
for(int i=0;i<str2.length;i++){
for (int j = 0; j < str2[i].length; j++) {
str2[i][j] = str[k++];
}
}
//講數組傳入excel並生成excel文件
@SuppressWarnings("resource")
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet();
for (int i = 0; i < str2.length; i++) {
HSSFRow row = sheet.createRow(i);
for (int j = 0; j < str2[i].length; j++) {
HSSFCell cell=row.createCell(j);
cell.setCellValue(str2[i][j]);
}
}
try
{
FileOutputStream output = new FileOutputStream("D:/report_"+DATE+".xls");
wb.write(output);
output.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}