📄 querygetter.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&¶ms.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 + -