博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java poi读取Excel数据 插入到SQL SERVER数据库中
阅读量:7116 次
发布时间:2019-06-28

本文共 5201 字,大约阅读时间需要 17 分钟。

hot3.png

 Impl实现层 package org.cupd.spdb.report.importexcel.dao.impl;import java.io.FileNotFoundException;import java.io.IOException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.cupd.spdb.report.importexcel.dao.CardBinDao;import com.websurf.spdb.bo.DBConnBOImpl;public class CardBinDaoImpl implements CardBinDao {  private static final Log log=LogFactory.getLog(CardBinDaoImpl.class); private static DBConnBOImpl dbConn = new DBConnBOImpl();   PreparedStatement ps = null;   Connection conn = null;   ResultSet rs = null;   private String filePath="E:\\Microsoft Excel.xlsx";      /**    * 插入数据    */   public boolean insertDB(){      boolean flag=true;      try {       //文件流指向excel文件         // FileInputStream fin=new FileInputStream(filePath);          XSSFWorkbook workbook=new XSSFWorkbook(filePath);//创建工作薄       XSSFSheet sheet=workbook.getSheetAt(0);//得到工作表          XSSFRow row=null;//对应excel的行          XSSFCell cell=null;//对应excel的列                   int totalRow=sheet.getLastRowNum();//得到excel的总记录条数        log.info("得到excel的总记录数"+totalRow);       //以下的字段一一对应数据库表的字段       String cardName="";    String cardType="";    String cardBin="";    String cardLength="";    String activityCode="";    String note="";       String sql ="insert into BizCardBin(cardName,cardType,cardBin,cardLength,activityCode,note) values(?,?,?,?,?,?)";       for(int i=2;i<=totalRow;i++){         row=sheet.getRow(i);         cell=row.getCell((short) 0);            cardName=cell.getStringCellValue().toString();          cell=row.getCell((short) 1);            cardType=cell.getStringCellValue().toString();         cell=row.getCell((short) 2);            cardBin=cell.getStringCellValue().toString();         cell=row.getCell((short) 3);          cardLength=cell.getStringCellValue().toString();         cell=row.getCell((short) 4);            activityCode=cell.getStringCellValue().toString();            cell=row.getCell((short) 5);         note=cell.getStringCellValue().toString();           conn=dbConn.getConnection();           log.info("获取JDBC连接完成");         ps=conn.prepareStatement(sql);            ps.setString(1,cardName);            ps.setString(2,cardType);            ps.setString(3,cardBin);            ps.setString(4,cardLength);            ps.setString(5,activityCode);          ps.setString(6,note);                    ps.execute();            System.out.println("preparestatement successful");        }         dbConnClose(conn, dbConn);    psClose(ps, rs);                } catch (FileNotFoundException e) {           flag=false;           e.printStackTrace();          } catch(IOException ex){           flag=false;            ex.printStackTrace();          } catch(SQLException exx){           flag=false;           exx.printStackTrace();          }            return flag;      }     public static void main(String[] args) {    CardBinDaoImpl e=new CardBinDaoImpl();    e.insertDB();   }         /**       * 插入数据 只需要传入插入sql即可       * 插入sql的样例:insert into t_department values('D004','金融部');       * @param insert 插入语句       * @return       * @throws SQLException        */    /*public int insertCardBin(BizCardBin cardBin){   int result=0;   PreparedStatement ps = null;   Connection conn = null;   String sql ="insert into BizCardBin(cardName,cardTyoe,cardBin,cardLength,cardLength,activityCode,note) values(?,?,?,?,?,?,?)";    try {     conn=dbConn.getConnection();     log.info("获取JDBC连接完成");     ps = conn.prepareStatement(sql);     ps.setString(1, cardBin.getCardName());     ps.setString(2, cardBin.getCardType());     ps.setString(3, cardBin.getCardBin());     ps.setString(4, cardBin.getCardLength());     ps.setString(5, cardBin.getActivityCode());     ps.setString(6, cardBin.getNote());     result = ps.executeUpdate();    } catch (SQLException e) {     // TODO Auto-generated catch block     log.error("SQL Exception "+ e);     e.printStackTrace();     return 0;    }finally{     dbConnClose(conn, dbConn);     psClose(ps, rs);    }    return result;  } */  public void dbConnClose(Connection conn,DBConnBOImpl dbConn){  if(conn!=null){   dbConn.close(conn);  } }  private static void psClose(final PreparedStatement preparedStatement,   final ResultSet resultSet) {  try {   if (resultSet != null) {    resultSet.close();   }   if (preparedStatement != null) {    preparedStatement.close();   }  } catch (SQLException e) {   log.error("error", e);  } } }Action层public class CardBinAction extends DispatchAction { public ActionForward showCardBinPage(ActionMapping mapping, ActionForm actionform,   HttpServletRequest request, HttpServletResponse response)   throws Exception {  return mapping.findForward("showCardBinPage"); }  private  CardBinService CardBinService=new CardBinServiceImpl();  public int insertCardBin() {  int result=CardBinService.insertDB();    return result; }

转载于:https://my.oschina.net/u/1444004/blog/195352

你可能感兴趣的文章
不安装执行apk的方法(参考地址)
查看>>
oracle中的递归查询(start with/connect by)
查看>>
Xenserver命令大全
查看>>
随堂练习_电梯
查看>>
自动化测试基础篇--Selenium cookie操作
查看>>
再思linux内核在中断路径内不能睡眠/调度的原因(2010)【转】
查看>>
TCP/UDP区别&&心跳包机制【转】
查看>>
通信协议中的转义字符【转】
查看>>
input 上报流程图
查看>>
cppcheck代码检测
查看>>
vs 2010 sn 序列号
查看>>
js获取下拉框的value值
查看>>
LeetCode OJ:Permutations(排列)
查看>>
云科技时代:阿里云创造者写了《在线》,这是一本怎样的书?
查看>>
PyQt5:常用控件
查看>>
WordPress部署踩坑记
查看>>
sublime-snippets 插件编写
查看>>
代码规范
查看>>
Leetcode | Length of Last Word
查看>>
2017.4.16关于在线图书商城注册界面总结
查看>>