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

📄 dingjiantask.java

📁 一个真实项目的源代码。有一个比较优秀的时间类
💻 JAVA
字号:
package com.zx.dangangl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.work.db.DbConnection;
import com.work.db.DbUtil;
import com.work.exception.OurException;

public class DingJianTask {
	private static Log log = LogFactory.getLog(DingJianTask.class);

	/**
	 * 目的是为了进行定件的数据库操作。需要编目的哪条记录的id将被保存到不需要编目的记录的“是否编目”字段中;
	 * 
	 * @param djIds
	 *            需要进行定件的记录的id的数组,数组中的值都是数字
	 * @param sfbmId
	 *            “是否编目”为是的那条记录的id
	 */
	public void dingJian(String[] djIds, String sfbmId) throws OurException {
		if (djIds == null) {
			throw new OurException("需要定件的记录id数组不能为空!");
		}
		if (sfbmId == null || sfbmId.equals("")) {
			throw new OurException("需要编目的记录的ID不能为空!");
		}
		String ids = "";
		int LEN = djIds.length;
		for (int i = 0; i < LEN; i++) {
			ids = ids + djIds[i] + ",";
		}
		ids = ids.substring(0, ids.length() - 1);
		String djSql = " update zx_jian set sfdj=1 where id in(" + ids + ") ";
		String sfbmSql = " update zx_jian set sfbm=" + sfbmId + " where id= ?";
		Connection conn = DbConnection.getConn();
		if (conn == null)
			throw new OurException("获取数据库连接失败!");

		PreparedStatement pst = null;
		try {
			conn.setAutoCommit(false);
			pst = conn.prepareStatement(djSql);
			pst.executeUpdate();
			pst = conn.prepareStatement(sfbmSql);
			for (int i = 0; i < LEN; i++) {
				if (djIds[i].equals(sfbmId)) {
					// do noting
				} else {
					pst.setInt(1, Integer.parseInt(djIds[i]));
					pst.executeUpdate();
				}
			}
			conn.commit();
			log.info("定件操作成功!");
		} catch (SQLException e) {
			log.error("定件操作失败!",e);
			try{
				conn.rollback();
			}catch(SQLException ex){
				log.error("定件操作失败后,数据库会滚操作失败!");
			}
			throw new OurException ("定件操作失败",e);
		}finally{
			DbUtil.closeStatement(pst);
			DbUtil.closeConnection(conn);
		}
	}
	
	/**
	 * 取消定件。首先根据编目的id查询到此件包含的所有文件的id,然后,设置是否定件为0,同时设置sfbm为0
	 * @param bmId
	 * @throws OurException
	 */
	public void cancelJian(String bmId) throws OurException{
		if (bmId == null || bmId.equals("")) {
			throw new OurException("需要编目的记录的ID不能为空!");
		}		
		String  sql = " select id from zx_jian where sfbm="+bmId;
		List  srcList = DbUtil.executeQueryList(sql); //首先查询出包含此文件的所有文件的id;
		int srcLen = srcList.size();
		
		String destSql = " update zx_jian set sfdj=0 ,sfbm=0 where id=? ";
		Connection conn = DbConnection.getConn();
		if (conn == null)
			throw new OurException("获取数据库连接失败!");

		PreparedStatement pst = null;
		try {
			conn.setAutoCommit(false);
			pst = conn.prepareStatement(destSql);
			pst.setInt(1,Integer.parseInt(bmId));
			pst.executeUpdate();
			for(int i=0;i<srcLen;i++){
				HashMap map = (HashMap)srcList.get(i);
				pst.setInt(1,((Integer)map.get("id")).intValue());
				pst.executeUpdate();
			}
			conn.commit();
			log.info("取消定件操作成功!");
		} catch (SQLException e) {
			log.error("取消定件操作失败!",e);
			try{
				conn.rollback();
			}catch(SQLException ex){
				log.error("取消定件操作失败后,数据库会滚操作失败!");
			}
			throw new OurException ("取消定件操作失败",e);
		}finally{
			DbUtil.closeStatement(pst);
			DbUtil.closeConnection(conn);
		}		
		 
	}
}

⌨️ 快捷键说明

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