?? dataupdate.java
字號:
package com.neu.wrm.common;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import oracle.jdbc.OracleTypes;
import com.neu.wrm.xml.QueryConfig;
/*
* Created on 2005-4-12
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author liuyuguang
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class DataUpdate {
/**
* @param conn
* @param params
* @param que
* @param value
* @throws SQLException
* 更新操作
*/
public int doUpdate(Connection conn, QueryConfig que, Object[] params,
Map value) throws SQLException, ParseException {
PreparedStatement pstmt = conn.prepareStatement(que
.getUpdateStatement(), ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
fillStatement(pstmt, params);
ResultSet rs = pstmt.executeQuery();
int row = 0;
while (rs.next()) {
fillResultSet(rs, que, value);
rs.updateRow();
row++;
}
pstmt.close();
return row;
}
/**
* @param pstmt
* @param params
* @throws SQLException
* 添加參數(shù)到PreparedStatement
*/
private void fillStatement(PreparedStatement pstmt, Object[] params)
throws SQLException {
for (int i = 1; i <= params.length; i++) {
String sf=(String) params[i-1];
pstmt.setObject(i, params[i - 1]);
}
}
/**
* @param rs
* @param que
* @param value
* @throws SQLException
* @throws ParseException
* 更新數(shù)據(jù)集
*/
private void fillResultSet(ResultSet rs, QueryConfig que, Map value)
throws SQLException, ParseException {
ResultSetMetaData rsmd = rs.getMetaData();
Map exclude = que.getExclude();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
if (exclude.containsKey(rsmd.getColumnName(i))
|| !value.containsKey(rsmd.getColumnName(i))) {
continue;
} else {
//格式化Date型數(shù)據(jù)
String str=rsmd.getColumnName(i);
String str2=rsmd.getColumnClassName(i);
if (rsmd.getColumnType(i) == Types.DATE
|| rsmd.getColumnType(i) == Types.TIME
|| rsmd.getColumnType(i) == OracleTypes.DATE
|| rsmd.getColumnType(i) == OracleTypes.TIME
|| rsmd.getColumnType(i)==OracleTypes.TIMESTAMP) {
Date date = new Date();
String dataString = "";
String format = (String) que.getFormats().get(
rsmd.getColumnName(i));
SimpleDateFormat simple = new SimpleDateFormat(format);
//提供系統(tǒng)當(dāng)前時間
if (value.get(rsmd.getColumnName(i)) == Consts.SYSTEM_CURRENT_TIME) {
dataString = new Long(System.currentTimeMillis())
.toString();
} else {
dataString = (String) value.get(rsmd.getColumnName(i));
}
date = simple.parse(dataString);
String dates=date.toLocaleString();
Timestamp time=Timestamp.valueOf(dates);
rs.updateObject(i, time);
}
//格式化number型數(shù)據(jù)
if (rsmd.getColumnType(i) == OracleTypes.NUMBER) {
String str56 = value.get(rsmd.getColumnName(i)).toString();
int interger = Integer.parseInt(value.get(
rsmd.getColumnName(i)).toString());
rs.updateInt(i, interger);
}
//傳入char型和varchar型數(shù)據(jù)
if (rsmd.getColumnType(i) == Types.CHAR
|| rsmd.getColumnType(i) == Types.VARCHAR) {
rs.updateString(i, value.get(rsmd.getColumnName(i))
.toString());
}
}
}
}
public int doDelete(Connection conn, QueryConfig que, String[] params)
throws SQLException {
PreparedStatement pstmt = conn.prepareStatement(que
.getUpdateStatement(), ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
fillStatement(pstmt, params);
ResultSet rs = pstmt.executeQuery();
int row = 0;
try {
while (rs.next()) {
rs.deleteRow();
row++;
}
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
return row;
}
public int doInsert(Connection conn, QueryConfig que, Object[] params)
throws SQLException {
PreparedStatement pstmt = conn.prepareStatement(que
.getPreparedStatement(), ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
fillStatement(pstmt, params);
int j = 0;
j = pstmt.executeUpdate();
return j;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -