? ? ?悲劇啊,發現原來寫入數據庫的數據有些問題,需要對這批數據進行處理
只有寫幾行代碼連接到數據庫批量修改了。
? ?需要操作的字段數據:
public class GarbageData {
private long id;
private String comment;
public void setID(long id){
this.id = id;
}
public long getID(){
return this.id;
}
public void setComment(String comment){
this.comment = comment;
}
public String getComment(){
return this.comment;
}
}
修改代碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class UpdateFeature {
private Connection m_connection;
private Statement m_statement;
private ResultSet m_resultSet;
private String m_strUrl;
private String m_strDBUser;
private String m_strDBPass;
private static final Logger logger = Logger.getLogger(UpdateFeature.class);
public UpdateFeature(String strUrl,String strDBUser,String strDBPass){
this.m_strUrl = strUrl;
this.m_strDBUser = strDBUser;
this.m_strDBPass = strDBPass;
this.connDB();
}
public int connDB(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
this.m_connection = DriverManager.getConnection(this.m_strUrl,this.m_strDBUser,this.m_strDBPass);
this.m_statement = this.m_connection.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
this.m_statement.setFetchSize(Integer.MIN_VALUE);
}catch(ClassNotFoundException e){
logger.error("Class not found exception.");
logger.error(e.getMessage(),e);
return -1;
}catch(SQLException ex){
logger.error("Connnect to " + this.m_strUrl + " failed!");
logger.error(ex.getMessage(),ex);
}
return 0;
}
public Statement getStatement(){
return this.m_statement;
}
public void updateFeature() throws SQLException{
String getSql = "SELECT * FROM `generalantispam`.`GarbageFeature` where insertTime > " + "\"2012-12-15 00:00:00\" and insertTime < " + "\"2012-12-18 00:00:00\"" + " order by garbageid desc";
logger.info(getSql);
ResultSet rs = this.m_statement.executeQuery(getSql);
List<GarbageData> dataList = new ArrayList<GarbageData>();
while (rs.next()){
GarbageData data = new GarbageData();
long garbageID = rs.getLong("garbageID");
String strComment = rs.getString("garbage");
String[] comments = strComment.split(";;;");
String strGarbage = comments[0];
data.setID(garbageID);
strGarbage = strGarbage.replaceAll("\"", "");
data.setComment(strGarbage);
dataList.add(data);
logger.info(strComment);
}
logger.info("List size: " + dataList.size());
this.m_connection.setAutoCommit(false);
for(int i = 0; i < dataList.size(); i++){
GarbageData data = dataList.get(i);
String strSql = "update `generalantispam`.`GarbageFeature` set garbage=\"" + data.getComment() + "\" where garbageID =" + data.getID() ;
logger.info(strSql);
this.m_statement.executeUpdate(strSql);
if (i % 50 == 0)
this.m_connection.commit();
}
this.m_connection.commit();
}
public void close(){
try {
if (this.m_resultSet != null)
m_resultSet.close();
if (this.m_statement != null)
m_statement.close();
if (this.m_connection != null)
m_connection.close();
} catch (Exception e) {
logger.equals(e.getMessage());
}
}
public static void main(String[] args) {
UpdateFeature upF = new UpdateFeature("jdbc:mysql://xxx.xxx.xxx.xxx:3306/generalantispam","garbage", "garbage");
try {
upF.updateFeature();
upF.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

