1 16 package com.jdon.model.query; 17 18 import java.sql.PreparedStatement ; 19 import java.sql.ResultSet ; 20 import java.sql.ResultSetMetaData ; 21 import java.sql.SQLException ; 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.Iterator ; 25 import java.util.LinkedHashMap ; 26 import java.util.List ; 27 import java.util.Map ; 28 29 import org.apache.log4j.Logger; 30 31 35 public class JdbcUtil { 36 private final static Logger logger = Logger.getLogger(JdbcUtil.class); 37 38 42 public void setQueryParams(Collection queryParams, PreparedStatement ps) throws Exception { 43 if ((queryParams == null) || (queryParams.size() == 0)) 44 return; 45 int i = 1; 46 Object key = null; 47 48 Iterator iter = queryParams.iterator(); 49 while (iter.hasNext()) { 50 key = iter.next(); 51 if (key != null) { 52 convertType(i, key, ps); 53 logger.debug("[JdonFramework] parameter " + i + " = " + key.toString()); 54 } else { 55 logger.warn("[JdonFramework] parameter " + i + " is null"); 56 ps.setString(i, ""); 57 } 58 i++; 59 } 60 61 } 62 63 private void convertType(int i, Object key, PreparedStatement ps) { 64 try { 65 if (key instanceof java.lang.String ) { 66 String keyStrs = (String ) key; 67 ps.setString(i, keyStrs); 68 } else if (key instanceof Integer ) { 69 ps.setInt(i, ((Integer ) key).intValue()); 70 } else if (key instanceof Float ) { 71 ps.setFloat(i, ((Float ) key).floatValue()); 72 } else if (key instanceof Long ) { 73 ps.setLong(i, ((Long ) key).longValue()); 74 } else if (key instanceof Double ) { 75 ps.setDouble(i, ((Double ) key).doubleValue()); 76 } else if (key instanceof Byte ) { 77 ps.setByte(i, ((Byte ) key).byteValue()); 78 } else if (key instanceof Short ) { 79 ps.setShort(i, ((Short ) key).shortValue()); 80 } else { 81 ps.setObject(i, key); 82 logger.debug("[JdonFramework]warniing: Type =" + key.getClass().getName() + " isn't be converted!"); 83 } 84 } catch (SQLException e) { 85 logger.error("[JdonFramework]setQueryParams error " + e + "in parameter order=" + i + " its value=" + key); 86 } catch (Exception e) { 87 logger.error(e); 88 } 89 } 90 91 101 public List extract(ResultSet rs) throws Exception { 102 ResultSetMetaData meta = rs.getMetaData(); 103 int count = meta.getColumnCount(); 104 List ret = new ArrayList (); 105 while (rs.next()) { 106 Map map = new LinkedHashMap (count); 107 for (int i = 1; i <= count; i++) { 108 map.put(meta.getColumnName(i), rs.getObject(i)); 109 } 110 ret.add(map); 111 } 112 return ret; 113 } 114 115 } 116 | Popular Tags |