当前位置: 代码迷 >> Java Web开发 >> JAVA 批量录入 急该怎么处理
  详细解决方案

JAVA 批量录入 急该怎么处理

热度:7629   发布时间:2013-02-25 21:12:34.0
JAVA 批量录入 急!!!!
首先不知道这个 方法这样写对不对
public boolean addPurchasingThemThe(String impttGRNNumber,String impttPurchaseBatch,String impttSteelRollNumber,String impttBrand,String impttSpecifications,String impttWeight,String impttWareHousingHeavy,String impttMaterialCoding,String impttMateriaType){
try{
Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection con=DriverManager.getConnection( "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CowainDB;userName=CMW;password=Cek50170270"); 
String sql="insert into PurchasingThemThe values(?,?,?,?,?,?,?,?,?)";
PreparedStatement sta = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); 
//for(int i=0;i <100;i++) 
//{ 
sta.setString(1,impttGRNNumber); 
sta.setString(2,impttPurchaseBatch); 
sta.setString(3,impttSteelRollNumber);
sta.setString(4,impttBrand);
sta.setString(5,impttSpecifications);
sta.setString(6,impttWeight);
sta.setString(7,impttWareHousingHeavy);
sta.setString(8,impttMaterialCoding);
sta.setString(9,impttMateriaType);
sta.addBatch(); 
//} 
sta.executeBatch(); 

}catch (Exception e) {
// TODO: handle exception
e.fillInStackTrace();
return false;
}
return true;
}


还有在 页面 我都不知道 怎么样去弄 页面上用的表格 里面的<input>接受值 用的interator读出来的 然后使用ACTION 在去接收 请问这样 应该怎么写啊 求大腿....

------解决方案--------------------------------------------------------
你现在的做法是
public boolean addPurchasingThemThe(String impttGRNNumber,String impttPurchaseBatch,String impttSteelRollNumber,String impttBrand,String impttSpecifications,String impttWeight,String impttWareHousingHeavy,String impttMaterialCoding,String impttMateriaType)

然后在别的逻辑了for循环调用addPurchasingThemThe(......),以达到批量录入的功能么。

首先这种做法效率很低,不可取,你不可能每录入一条数据就要创建一个connection,然后执行一条sql语句。

你问我的List<RecordVo> list = xxxxx中的xxxxx从何而来,
其实只要你调用addPurchasingThemThe的时候,传的那些参数就是list的数据元,举个简单的逻辑。
Java code
    public void executeBatch() throws Exception {        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");        Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CowainDB;userName=CMW;password=Cek50170270");                String    sql="insert into PurchasingThemThe values(?,?,?,?,?,?,?,?,?)";        PreparedStatement sta = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);                List<RecordVo> list = xxxx;// 这根据你以前传给addPurchasingThemThe的参数可以得到。        addPurchasingThemThe(List<RecordVo> list, PreparedStatement sta); // 可以实现批量录入        if (con != null) {            con.close();            con = null;        }    }    public boolean addPurchasingThemThe(List<RecordVo> list, PreparedStatement sta) throws Exception {        for (RecordVo vo : list) {            sta.setString(1, vo.getImpttGRNNumber());            // ......            sta.addBatch();        }        sta.executeBatch();        if (sta != null) {            sta.close();            sta = null;        }    }
  相关解决方案