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

📄 querygetter.java

📁 数据库的基本处理类
💻 JAVA
字号:
package com.neu.wrm.common;

import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.neu.wrm.xml.ConditionConfig;
import com.neu.wrm.xml.QueriesConfig;
import com.neu.wrm.xml.QueriesConfigKeeper;
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 QueryGetter {
	private QueryRunner queryRunner;

	private QueriesConfig queries;

	private QueryConfig query;

	private Connection conn;

	private void init() {
		//	参数初始化
		try {
			conn = ConnectionKeeper.getMyConnection();
			queries = QueriesConfigKeeper.getMyQueriesConfig();
			queryRunner = new QueryRunner();
		} catch (Exception ex) {
			System.out.println("init error");
			ex.printStackTrace();
		}
	}

	//**
	//条件查询函数
	//有问题
	//**

	public List query(String queryname, Map params) throws SQLException {
		//	参数初始化
		init();
		//解析SQL文
		List list = new ArrayList();
		List para = new ArrayList();//params的记录集
		query = queries.getQuery(queryname);//get query form queries
		if(query==null)return null;
		String sta = query.getStatement();//get statement form query
		StringBuffer buf = new StringBuffer();
		buf.append(sta);
		Map possibleConditions = query.getPossibleConditions();//get
															   // possibleconditions
															   // form query
		if (!possibleConditions.isEmpty()) {
		    StringBuffer where = new StringBuffer(" WHERE ");
		    boolean isFirst = true;
		Class type = query.getResultSet().getResultType();

		for (Iterator it = possibleConditions.entrySet().iterator(); it
				.hasNext();)//将条件放入到SQL语句
		{
			Map.Entry entry = (Map.Entry) it.next();
			ConditionConfig config = (ConditionConfig) entry.getValue();
			String name = config.getName();

			if (params.containsKey(name)) {
			    if(params.get(name)!=null&&params.get(name).toString().length()>0){
			    para.add(params.get(name));
                if (isFirst) {
                    where.append(" (" + config.getString() + ")");
                    isFirst = false;
                } else {
                    where.append(" AND (" + config.getString() + ")");
                }
			    }
				
			}//从params集中将值取出并添加
			//else
			//	para = null;
		}
		buf.append(where);
		List order = query.getOrder();

		buf.append(getOrder(order));
		String sql = buf.toString();
		//设置结果集
		if (query.getResultSet().isBean())
			list = (List) queryRunner.query(conn, sql, para.toArray(),
					new BeanListHandler(type, new IRowProcessor()));

		else
			list = null;
		}
		return list;
	}
	
	/**
     * Execute an SQL SELECT query without any replacement parameters.
     * @throws SQLException
     */	
	public List query(String queryname) throws SQLException {
		//	参数初始化
		init();
		//解析SQL文
		query = queries.getQuery(queryname);//get query form queries
		String sta = query.getStatement();//get statement form query
		StringBuffer buf = new StringBuffer();
		buf.append(sta);
		Class type = query.getResultSet().getResultType();
		List para = new ArrayList();//params的记录集
		List list = new ArrayList();
		List order = query.getOrder();

		buf.append(getOrder(order));
		String sql = buf.toString();
		//设置结果集
		if (query.getResultSet().isBean())
			list = (List) queryRunner.query(conn, sql,
					new BeanListHandler(type, new IRowProcessor()));

		else
			list = null;
		return list;
	}
	//**
	//key值查询函数
	//**
	public Object query(String queryname, String param) throws SQLException {
		//参数初始化
		init();
		//解析SQL文
		query = queries.getQuery(queryname);//get query form queries
		String psta = query.getPreparedStatement();//get statement form query
		StringBuffer buf = new StringBuffer();
		buf.append(psta);
		Class type = query.getResult().getResultType();
		List order = query.getOrder();
		buf.append(getOrder(order));
		String sql = buf.toString();
		//设置结果
		Object result = new Object();
		if (query.getResult().isBean())
			result = queryRunner.query(conn, sql, param, new BeanHandler(type,
					new IRowProcessor()));
		return result;
	}
	//**
	//更新函数
	//**
	public int update(String updatename, Object[] params, Map value)
			throws SQLException, ParseException {
		//	参数初始化
		init();
		//解析SQL文
		query = queries.getQuery(updatename);//get query form queries
		DataUpdate dataUpdate = new DataUpdate();
		return dataUpdate.doUpdate(conn, query, params, value);
	}

	//**
	//删除函数
	//**
	public int delete(String deletename, String[] params) throws SQLException {
		//	参数初始化
		init();
		//解析SQL文
		query = queries.getQuery(deletename);//get query form queries
		DataUpdate dataUpdate = new DataUpdate();
		return dataUpdate.doDelete(conn, query, params);
	}

	//**
	//插入函数
	//**
	public int insert(String insertname, Object[] params) throws SQLException {
		//	参数初始化
		init();
		//解析SQL文
		query = queries.getQuery(insertname);//get query form queries
		DataUpdate dataUpdate = new DataUpdate();
		return dataUpdate.doInsert(conn, query, params);
	}

	//**
	//获取OrderBy字符串函数
	//**
	public String getOrder(List order) {
		int s = order.size();
		if (s > 0) {
			StringBuffer sbf = new StringBuffer(" order by ");
			for (int i = 0; i < s; i++) {
				sbf.append(order.get(i));
			}
			return sbf.toString();
		} else
			return "";
	}
}

⌨️ 快捷键说明

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