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

📄 generalactionbase.java

📁 数据库的基本处理类
💻 JAVA
字号:
/*
 * Created on 2005-4-6
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

package com.neu.wrm.common;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

import javax.sql.*;
import javax.naming.*;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.neu.wrm.xml.QueriesConfig;
import com.neu.wrm.xml.QueriesConfigKeeper;

/**
 * @author liuyuguang
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public abstract class GeneralActionBase extends Action {
	public final ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception
			 {
		//DB连接初始化
		DataSource ds = null;
		InitialContext initContext = new InitialContext();
		
		try {

			ds = (DataSource) initContext
					.lookup("java:/comp/env/jdbc/myoracle");
		} catch (Exception ex) {
			ex.printStackTrace();
			throw ex;
		} finally {
			initContext.close();
			initContext = null;
		}
		Connection conn = ds.getConnection();
		try {
			
			conn.setAutoCommit(false);
			ConnectionKeeper.setMyConnection(conn);
		} catch (SQLException e) {
			// ignore.
			throw e;
		}
		ds = null;
		

		//QueriesConfig取出
		QueriesConfig qsc = (QueriesConfig) getServlet().getServletContext()
				.getAttribute(Consts.QUERIES_CONFIG_KEY);
		QueriesConfigKeeper.setMyQueriesConfig(qsc);
		//data验证
		Checkable[] checkables = getCheckables();
		Checker checker = new Checker(checkables);
		ActionErrors errors = checker.execute(this, mapping, form, request,
				response);
		if (errors != null && !errors.isEmpty()) {
			throw new CheckerException(errors);
		}

		//doexecute执行
		ActionForward forward = doExecute(mapping, form, request, response);
		try{
			boolean b=NeedsCommit.class.isInstance(this);
			if(NeedsCommit.class.isInstance(this))
		        conn.commit();
		        
		}catch(Exception e){
		    if(!conn.isClosed())
		       conn.rollback();
		    throw e;
		}
		finally{
		if(!conn.isClosed())	
			conn.close();
		}
		ConnectionKeeper.clearMyConnection();
		
		return forward;

	}

	public abstract ActionForward doExecute(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception;

	public Checkable[] getCheckables() {
	    Checkable check[]={new checklogin()};
		return check;
	}

}

⌨️ 快捷键说明

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