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