KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jdon > model > query > JdbcUtil


1 /*
2  * Copyright 2003-2006 the original author or authors.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  *
15  */

16 package com.jdon.model.query;
17
18 import java.sql.PreparedStatement JavaDoc;
19 import java.sql.ResultSet JavaDoc;
20 import java.sql.ResultSetMetaData JavaDoc;
21 import java.sql.SQLException JavaDoc;
22 import java.util.ArrayList JavaDoc;
23 import java.util.Collection JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.LinkedHashMap JavaDoc;
26 import java.util.List JavaDoc;
27 import java.util.Map JavaDoc;
28
29 import org.apache.log4j.Logger;
30
31 /**
32  * @author <a HREF="mailto:banqiao@jdon.com">banq </a>
33  *
34  */

35 public class JdbcUtil {
36     private final static Logger logger = Logger.getLogger(JdbcUtil.class);
37
38     /**
39      * queryParam type only support String Integer Float or Long Double Bye Short
40      * if you need operate other types, you must use JDBC directly!
41      */

42     public void setQueryParams(Collection JavaDoc queryParams, PreparedStatement JavaDoc ps) throws Exception JavaDoc {
43         if ((queryParams == null) || (queryParams.size() == 0))
44             return;
45         int i = 1;
46         Object JavaDoc key = null;
47
48         Iterator JavaDoc 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 JavaDoc key, PreparedStatement JavaDoc ps) {
64         try {
65             if (key instanceof java.lang.String JavaDoc) {
66                 String JavaDoc keyStrs = (String JavaDoc) key;
67                 ps.setString(i, keyStrs);
68             } else if (key instanceof Integer JavaDoc) {
69                 ps.setInt(i, ((Integer JavaDoc) key).intValue());
70             } else if (key instanceof Float JavaDoc) {
71                 ps.setFloat(i, ((Float JavaDoc) key).floatValue());
72             } else if (key instanceof Long JavaDoc) {
73                 ps.setLong(i, ((Long JavaDoc) key).longValue());
74             } else if (key instanceof Double JavaDoc) {
75                 ps.setDouble(i, ((Double JavaDoc) key).doubleValue());
76             } else if (key instanceof Byte JavaDoc) {
77                 ps.setByte(i, ((Byte JavaDoc) key).byteValue());
78             } else if (key instanceof Short JavaDoc) {
79                 ps.setShort(i, ((Short JavaDoc) 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 JavaDoc e) {
85             logger.error("[JdonFramework]setQueryParams error " + e + "in parameter order=" + i + " its value=" + key);
86         } catch (Exception JavaDoc e) {
87             logger.error(e);
88         }
89     }
90
91     /**
92      * return a List
93      * in the List, every object is a map,
94      * by database column name, we can get the its result from map
95      *
96      *
97      * @param rs ResultSet
98      * @return List
99      * @throws Exception
100      */

101     public List JavaDoc extract(ResultSet JavaDoc rs) throws Exception JavaDoc {
102         ResultSetMetaData JavaDoc meta = rs.getMetaData();
103         int count = meta.getColumnCount();
104         List JavaDoc ret = new ArrayList JavaDoc();
105         while (rs.next()) {
106             Map JavaDoc map = new LinkedHashMap JavaDoc(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