/**
* 插入 product_propertyKind 表,product_property 表
* 使用事务处理方法,
* setAutoCommit(false)
* rollback()
* commit()
* 批量Batch插入方法
* addBatch()
* executeBatch()
* 传入参数
* @param conn
* @param ppk
* 返回boolean值
* @return
*/
public boolean singleToBatch(Connection conn,ProductPropertyKind ppk){
String sqlPPK="insert into product_propertyKind values(default,?,?,?,?)";
String sqlPPs="insert into product_property values(default,?,?,?)";
String sqlgetid="select last_insert_id() from product_propertyKind limit 1";
PreparedStatement pst = null;
ResultSet rs = null;
int id=0;
try {
conn.setAutoCommit(false);
pst=conn.prepareStatement(sqlPPK);
pst.setString(1,ppk.getKindName());
pst.setInt(2,ppk.getFlag());
pst.setInt(3,ppk.getState());
pst.setInt(4,ppk.getMediaKindId());
pst.executeUpdate();
//返回插入的ID
pst=conn.prepareStatement(sqlgetid);
rs=pst.executeQuery();
//赋值给id
while(rs.next()){
id=rs.getInt(1);
}
//批量赋值过程
String[] property = ppk.getPropertyName().trim().split(",");
pst=conn.prepareStatement(sqlPPs);
for(int i=0;i
pst.setInt(1,id);
pst.setString(2,property[i].trim());
pst.setInt(3,1);
//把一个SQL命令加入命令列表
pst.addBatch();
}
pst.executeBatch();
} catch (Exception e) {
// TODO Auto-generated catch block
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}finally{
try {
pst.close();
//最后提交
conn.commit();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return true;
}