⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataupdate.java

📁 数据库的基本处理类
💻 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
	 *             添加参数到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
	 *             更新数据集
	 */
	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型数据
			    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);
					//提供系统当前时间
					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型数据
				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型数据
				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;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -