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

📄 daohelper.java

📁 基于STRUTS的网络调查应用
💻 JAVA
字号:
/*
 * Created on 16-ene-2005 23:18:16
 *
 */
package com.martincuervo.javatest.business.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

/**
 * @author Jorge Martin Cuervo <jorge@martincuervo.com>
 *
 */
public class DAOHelper {

	private Connection connection;
	private ResourceBundle resources;
	
	
	public DAOHelper(String resourceBundleName, Connection connection) {
		
		resources = ResourceBundle.getBundle(resourceBundleName);
		this.connection = connection; 
	}
	
	/**
	 * Ejecuta la sentencia definida en la clave
	 * 
	 * @param queryKey
	 * @param params
	 * @param disconnect true para desconectar
	 */
	public void executeQuery(String queryKey, Object[] params, boolean disconnect) {
		
		String queryString = resources.getString(queryKey);
		PreparedStatement stm = null;
		
		try {
			stm = connection.prepareStatement(queryString);
			if (params != null) {
				for (int i = 0; i < params.length; i++) {
					stm.setObject(i+1, params[i]);	
				}
			}
			//System.out.println(queryString + "\n" + Arrays.asList(params));
			
			stm.execute();
		} catch (SQLException e) {
			
		} finally {
			try {
				if (stm != null) stm.close();
			} catch (SQLException e) {
				System.out.println("Error, no puedo cerrar la sentencia.");
			}
			if (disconnect) {
				try {
					connection.close();
				} catch (SQLException e) {
					System.out.println("Error, no puedo cerrar la conexion.");
				}
			}
		}
	}
	
	public List executeSelect(String queryKey, Object[] params, 
			IResultSetWrapper wrapper, boolean disconnect) {
		
		String queryString = resources.getString(queryKey);
		PreparedStatement stm = null;
		ResultSet rs = null;
		List list = new ArrayList(); 
		
		try {
			stm = connection.prepareStatement(queryString);
			if (params != null) {
				for (int i = 0; i < params.length; i++) {
					stm.setObject(i+1, params[i]);	
				}
			}
			
			rs = stm.executeQuery();
			
			while (rs.next()) {
				list.add(wrapper.transform(rs));
			}
			
			
		} catch (SQLException e) {
			
		} finally {
			try {
				if (rs != null) rs.close();
			} catch (SQLException e) {
				System.out.println("Error, no puedo cerrar la sentencia.");
			}
			try {
				if (stm != null) stm.close();
			} catch (SQLException e) {
				System.out.println("Error, no puedo cerrar la sentencia.");
			}
			if (disconnect) {
				try {
					connection.close();
				} catch (SQLException e) {
					System.out.println("Error, no puedo cerrar la conexion.");
				}
			}
		}
		
		return list;
	}
	
	/**
	 * 
	 * @param queryKey
	 * @param params
	 */
	public void executeQuery(String queryKey, Object[] params) {
		executeQuery(queryKey, params, true);
	}
	
	public List executeSelect(String queryKey, Object[] params, 
			IResultSetWrapper wrapper) {
		return executeSelect(queryKey, params, wrapper, true);
	}
}

⌨️ 快捷键说明

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