/tags/v2_0_4a/generator/src/org/collazos/bdbean/BdUtils.java
# · Java · 223 lines · 208 code · 7 blank · 8 comment · 28 complexity · 1d51dde21cf6063c54b2ce6bde071b28 MD5 · raw file
- //Generation Date: Sun Oct 23 14:43:48 CEST 2005
- package org.collazos.bdbean;
- import java.sql.*;
- import org.collazos.util.database.ConnectDB;
- import org.collazos.generator.bdexception.*;
- import electric.xml.*;
- /**
- * BdUtils
- * Generator version: 2.0.4
- * Class to provide some useful stuff.
- * Generation Date: Sun Oct 23 14:43:48 CEST 2005
- *
- */
- public class BdUtils {
- public BdUtils() {
- }
- public static Element executeQueryToXml(String sql) {
- Connection con = null;
- Statement stm = null;
- ResultSet rs = null;
- int k=0;
- try {
- con = ConnectDB.getSimpleConnection();
- stm = con.createStatement();
- rs = stm.executeQuery(sql);
- Element queryResult = new Element("query-result");
- int numColumns = rs.getMetaData().getColumnCount();
- String[] fieldName = new String[numColumns];
- String[] fieldType = new String[numColumns];
- for (int i=0;i<numColumns;i++) {
- fieldName[i]=rs.getMetaData().getColumnName(i+1);
- int numType = rs.getMetaData().getColumnType(i+1);
- ColumnData cd = new ColumnData(fieldName[i],numType,1);
- fieldType[i]=cd.getJavaType();
- }
- while (rs.next()) {
- Element tmpElem = new Element("row");
- for (int i=0;i<numColumns;i++) {
- String fieldValue=rs.getString(fieldName[i]);
- Element fieldElem = new Element("field");
- fieldElem.setAttribute("name",fieldName[i]);
- fieldElem.setAttribute("java-type",fieldType[i]);
- fieldElem.setAttribute("value",rs.getString(fieldName[i]));
- tmpElem.addChild(fieldElem);
- }
- tmpElem.setAttribute("rowid",""+k);
- queryResult.addChild(tmpElem);
- k++;
- }
- return queryResult;
- } catch (Exception e) {
- throw new BaseRuntimeException(e.toString());
- } finally {
- if (rs != null) try { rs.close(); } catch (Exception ignored) {}
- if (stm != null) try { stm.close(); } catch (Exception ignored) {}
- if (con != null) ConnectDB.putConnection(con);
- }
- }
- public static String replaceString (String str, String find, String replace) {
- if (str == null) return null;
- if ((find == null) || (find.length() == 0)) return str;
- if (replace == null) replace = "";
- StringBuffer sb = new StringBuffer(str.length());
- int pos = 0;
- int lastPos = 0;
- while (pos >= 0) {
- pos = str.indexOf(find, lastPos);
- if (pos >= 0) {
- sb.append(str.substring(lastPos, pos));
- sb.append(replace);
- } else {
- sb.append(str.substring(lastPos));
- }
- lastPos = pos + find.length();
- }
- return sb.toString();
- }
-
-
-
- private static class ColumnData
- {
- String[] sqlTypes = { "CHAR","TINYINT","BIGINT","INT","SMALLINT","FLOAT","REAL","DOUBLE","NUMERIC","DECIMAL","DATE","VARCHAR","LONGVARCHAR","TIMESTAMP","TIME","BIT","BINARY","VARBINARY","LONGVARBINARY","NULL","OTHER","TEXT" };
- int type;
- int columns;
- String name;
- public ColumnData (String name,int origType, int columns)
- {
- this.name = name;
- this.type = origType;
- this.columns = columns;
- switch (type)
- {
- case -1:
- break;
- case -2:
- type = 18;
- break;
- case -3:
- type = 19;
- break;
- case -4:
- type = 19;
- break;
- case -5:
- type = 3;
- break;
- case -6:
- type = 2;
- break;
- case -7:
- type = 16;
- break;
- case 1111:
- type = 3;
- break;
- case 91:
- type = 11;
- break;
- case 92:
- type = 14;
- break;
- case 93:
- type = 14;
- break;
- default:
- break;
- }
- }
- public ColumnData (String name, String coltype, int columns)
- {
- this.name = name;
- this.columns = columns;
- int i=0;
- boolean quit = false;
- this.type = -1; // invalid
- while (!quit)
- {
- if (coltype.toUpperCase().compareTo(sqlTypes[i]) == 0)
- {
- this.type = i+1;
- quit = true;
- }
- i++;
- if (i>=sqlTypes.length)
- quit = true;
- }
- }
- public String getName() {
- return name;
- }
- public String getJavaType()
- {
- String jType = null;
- switch (type)
- {
- case 1:
- case 12:
- case 13:
- case 22:
- jType = "String";
- break;
- case 2:
- jType = "byte";
- break;
- case 3:
- jType = "long";
- break;
- case 4:
- jType = "int";
- break;
- case 5:
- jType = "short";
- break;
- case 6:
- case 8:
- jType = "double";
- break;
- case 9:
- case 10:
- jType = "java.math.BigDecimal";
- break;
- case 7:
- jType = "float";
- break;
- case 11:
- jType = "java.util.Date";
- break;
- case 14:
- jType = "Timestamp";
- break;
- case 15:
- jType = "Time";
- break;
- case 16:
- jType = "boolean";
- break;
- case 17:
- case 18:
- case 19:
- jType = "byte[]";
- break;
- case 20:
- jType = "null";
- break;
- default:
- jType = "unknown";
- break;
- }
- return jType;
- }
- public String getType() {
- if ((type > sqlTypes.length) || (type < 0))
- return ""+type;
- else
- return sqlTypes[type-1];
- }
- }
- }