package com.tenwa.reckon.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.amarsoft.app.als.sys.SystemConfig; import com.amarsoft.are.ARE; import com.amarsoft.are.jbo.JBOException; import com.amarsoft.are.jbo.JBOTransaction; /** * * @author zhangc */ public class Conn { private Connection conn ; @SuppressWarnings("deprecation") public Conn(JBOTransaction tx){ try { this.conn=com.amarsoft.awe.util.Transaction.createTransaction(tx).getConnection(); } catch (JBOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 执行查询 * * @param sql * 查询的SQL语句 * @param params * 参数 * @return * @throws SQLException * @throws Exception */ public List> executeQuery(String sql,String ... params) throws SQLException { List> result; result = new ArrayList>(); PreparedStatement ps = this.conn.prepareStatement(sql); if(params != null && params.length > 0){ for(int i = 0 ; i < params.length ; i++){ ps.setString(i+1, params[i]); } } ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int colunCount = rsmd.getColumnCount(); while(rs.next()){ Map value = new HashMap(); for(int i = 1 ; i <= colunCount ; i++){ value.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(rsmd.getColumnName(i).toLowerCase())); } result.add(value); } return result; } /** * 执行的修改语句 * * @param sql * update或delete的SQL语句 * @param mesage * 输出SQL语句的前置消息字符 * @return * @throws SQLException * @throws Exception */ public Boolean executeUpdate(String sql, String... params) throws SQLException { PreparedStatement ps = this.conn.prepareStatement(sql); if(params != null && params.length > 0){ for(int i = 0 ; i < params.length ; i++){ ps.setString(i+1, params[i]); } } return ps.execute(); } public Boolean executeUpdate(String sql, List params) throws SQLException { PreparedStatement ps = this.conn.prepareStatement(sql); if(params != null && params.size() > 0){ for(int i = 0 ; i < params.size() ; i++){ ps.setString(i+1, params.get(i)); } } return ps.execute(); } }