教你取Excel数据并导入DB2数据库
最近项目需要读取Excel,将数据导入数据库保存,最终可以用报表读取数据库并显示,比较简单。查了一下两者的资料,觉的也无所谓,我需要的功能比较简单,只要能读取Excel数据就行,最后决定使用POI,比较信任Apache。
下面付的代码是一个Demo,功能点有两个:一就是POI读取Excel,二是DB2数据库的连接和SQL执行。
importJava。io。FileInputStream;importjava。io。IOException;importjava。sql。Connection;importjava。sql。DriverManager;importjava。sql。SQLException;importjava。sql。Statement;importorg。apache。poi。hssf。usermodel。HSSFCell;importorg。apache。poi。hssf。usermodel。HSSFRow;importorg。apache。poi。hssf。usermodel。HSSFSheet;importorg。apache。poi。hssf。usermodel。HSSFWorkbook;importorg。apache。poi。poifs。filesystem。POIFSFileSystem;publicclassPOITest{privatestaticConnectionconn=null;privatestaticStatementstmt=null;privatestaticbooleanconnectDB2(){Stringurl="";Stringusername="username";Stringpassword="password";//加载驱动程序以连接数据库try{//添加类库驱动包db2jcc。jar和db2jcc_license_cu。jarClass。forName("com。ibm。db2。jcc。DB2Driver");url="JDBC:db2://192。168。0。1:50000/dbname";//添加类库驱动包db2java。jar//Class。forName("com。ibm。db2。jdbc。app。DB2Driver")。newInstance();//url="jdbc:db2:njtcdata";conn=DriverManager。getConnection(url,username,password);stmt=conn。createStatement();}//捕获加载驱动程序异常catch(ClassNotFoundExceptioncnfex){System。err。println("装载JDBC驱动程序失败。");cnfex。printStackTrace();returnfalse;}//捕获连接数据库异常catch(SQLExceptionsqlex){System。err。println("无法连接数据库");sqlex。printStackTrace();//System。exit(1);//terminateprogramreturnfalse;}returntrue;}privatestaticbooleanreadExcelToDB2(){POIFSFileSystemfs=null;HSSFWorkbookwb=null;try{fs=newPOIFSFileSystem(newFileInputStream("c:\\test。xls"));wb=newHSSFWorkbook(fs);}catch(IOExceptione){e。printStackTrace();returnfalse;}HSSFSheetsheet=wb。getSheetAt(0);HSSFRowrow=null;HSSFCellcell=null;Stringname="";intid=0;introwNum,cellNum;inti;rowNum=sheet。getLastRowNum();for(i=0;i<=rowNum;i++){row=sheet。getRow(i);//cellNum=row。getLastCellNum();cell=row。getCell((short)0);name=cell。getStringCellValue();cell=row。getCell((short)1);id=(int)cell。getNumericCellValue();Stringsql="insertintoTEST(ID,NAME)values("+id+",'"+name+"')";try{stmt。executeUpdate(sql);}catch(SQLExceptione1){e1。printStackTrace();returnfalse;}}returntrue;}publicstaticvoidmain(String[]args){if(connectDB2()==true){if(readExcelToDB2()==true)System。out。println("数据导入成功");elseSystem。out。println("数据导入失败");}else{System。out。println("数据库连接失败");}}}