日期:2014-05-17  浏览次数:20766 次

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;
        }
    }