resultsetjep.java

来自「mysql集群」· Java 代码 · 共 107 行

JAVA
107
字号
/*****************************************************************************      SQLJEP - Java SQL Expression Parser 0.2      November 1 2006         (c) Copyright 2006, Alexey Gaidukov      SQLJEP Author: Alexey Gaidukov      SQLJEP is based on JEP 2.24 (http://www.singularsys.com/jep/)           (c) Copyright 2002, Nathan Funk       See LICENSE.txt for license information.*****************************************************************************/package com.meidusa.amoeba.sqljep;import java.util.*;import java.sql.*;/** * Example of usage * <blockquote><pre> * 	ResultSet rs = statement.excute("SELECT ID,SUM,SALE_DATE from test"); * 	ResultSetJEP sqljep = new ResultSetJEP("ID in (1,2,3) and SUM>100 and SALE_DATE>trunc(sysdate)-7"); * 	try { * 		sqljep.addConstant("sysdate", new java.util.Date()); * 		sqljep.parseExpression(rs); * 		whille (rs.next()) { * 			System.out.println(sqljep.getValue()); * 		} * 	} * 	catch (ParseException e) { * 		e.printStackTrace(); *	} * </pre></blockquote> * @author Alexey Gaidukov * @see com.meidusa.amoeba.sqljep.BaseJEP */public class ResultSetJEP extends BaseJEP {	protected ResultSet rs = null;		/** Symbol Table */	final protected HashMap<String, Comparable> constTab = new HashMap<String,Comparable>();	/**	 * Creates a new ResultSetJEP instance.	 */	public ResultSetJEP(String exp) {		super(exp);	}	public void clear() {		super.clear();		this.rs = null;	}		public int findColumn(String name){		if (rs != null) {			try {				return rs.findColumn(name)-1;			} catch (SQLException e) {				return -1;			}		}		return -1;	}		public Comparable getColumnObject(int column) throws ParseException {		try {			return (Comparable)rs.getObject(column+1);		} catch (SQLException e) {			throw new ParseException(e.getMessage());		}	}    /**	 * Add the constant into constants table.     * If the table previously contained a constant for this name, the old     * value is replaced.	 *     * @return previous value of constant with specified name, or <tt>null</tt>     *	       if there was no constant.  A <tt>null</tt> return can     *	       also indicate that the previously value of the constant with the specified name     *	       was <tt>null</tt>.     */	public Comparable addConstant(String name, Comparable value) {		return constTab.put(name, value);	}		/**	 * TODO: Use constTab hash more effectively. 	 * If it was possible to use HasMap.getEntry it will be oprimal 	 * but HasMap.getEntry is not public	 */	public Map.Entry getVariable(String name) throws ParseException {		for (Map.Entry e : constTab.entrySet()) {			if (e.getKey().equals(name));				return e;		}		return null;	}	/*public void parseExpression(ResultSet rs) throws ParseException {		this.rs = rs;		super.parseExpression();	}*/}

⌨️ 快捷键说明

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