KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > data > UtilSql


1 /*
2  ************************************************************************************
3  * Copyright (C) 2001-2006 Openbravo S.L.
4  * Licensed under the Apache Software License version 2.0
5  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6  * Unless required by applicable law or agreed to in writing, software distributed
7  * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
8  * CONDITIONS OF ANY KIND, either express or implied. See the License for the
9  * specific language governing permissions and limitations under the License.
10  ************************************************************************************
11 */

12 package org.openbravo.data;
13
14 import java.sql.*;
15 import java.util.Date JavaDoc;
16 import java.lang.reflect.*;
17 import java.text.SimpleDateFormat JavaDoc;
18
19 public class UtilSql {
20
21   public boolean GetStringResultSet(ResultSet result, Object JavaDoc sqlObject)
22   {
23     Field f = null;
24     try
25     {
26       ResultSetMetaData rmeta=result.getMetaData();
27       int numColumns=rmeta.getColumnCount();
28
29       for(int i=1;i<=numColumns;++i) {
30         String JavaDoc strNombreColumna = rmeta.getColumnName(i);
31         String JavaDoc strFieldName = TransformaNombreColumna(strNombreColumna);
32         f = sqlObject.getClass().getField(strFieldName);
33         f.setAccessible(true);
34
35
36         switch (rmeta.getColumnType(i)) {
37           case 2: f.set(sqlObject, Long.toString(result.getLong(strNombreColumna)));
38                     break;
39           case 12: f.set(sqlObject, result.getString(strNombreColumna));
40                     break;
41           case 93: f.set(sqlObject, result.getDate(strNombreColumna));
42                     if(result.wasNull())
43                       f.set(sqlObject, new java.sql.Date JavaDoc(System.currentTimeMillis()));
44                     break;
45         }
46         if (result.wasNull()&&rmeta.getColumnType(i)!=93)
47           f.set(sqlObject, "");
48
49         f.setAccessible(false);
50       }
51     }catch(Exception JavaDoc e){
52       e.printStackTrace();
53       return(false);
54     }
55     return(true);
56   }
57
58   public String JavaDoc TransformaNombreColumna(String JavaDoc strColumn){
59     String JavaDoc strNombreTransformado = "";
60     Character JavaDoc BarraBaja = new Character JavaDoc('_');
61     int intNumCaracteres = strColumn.length();
62     boolean blnFueBarraBaja = false;
63     for (int i=0; i<intNumCaracteres; i++){
64       if (i==0) strNombreTransformado = new Character JavaDoc(Character.toUpperCase(strColumn.charAt(i))).toString();
65       else{
66         if (new Character JavaDoc(strColumn.charAt(i)).compareTo(BarraBaja) == 0) blnFueBarraBaja = true;
67         else{
68           if (blnFueBarraBaja){
69             strNombreTransformado = strNombreTransformado + new Character JavaDoc(Character.toUpperCase(strColumn.charAt(i))).toString();
70             blnFueBarraBaja = false;
71           }
72           else strNombreTransformado = strNombreTransformado + new Character JavaDoc(Character.toLowerCase(strColumn.charAt(i))).toString();
73         }
74       }
75     }
76     return(strNombreTransformado);
77   }
78
79   public boolean AsignarValoresEntrada(PreparedStatement ps, int posicion, int tipo, String JavaDoc strValor){
80     try{
81       if(strValor!=null)
82       {
83         if(strValor.compareTo("")==0)
84           ps.setNull(posicion, tipo);
85         else
86         {
87           switch (tipo) {
88             case 2: ps.setLong(posicion, Long.valueOf(strValor).longValue());
89                       break;
90             case 12: ps.setString(posicion,strValor);
91                       break;
92           }
93
94         }
95       }
96       else
97         ps.setNull(posicion, tipo);
98     }catch(Exception JavaDoc e){
99       e.printStackTrace();
100       return(false);
101     }
102     return(true);
103   }
104
105   // setValue and getValue method to be used in sqlc
106

107   public static boolean setValue(PreparedStatement ps, int posicion, int tipo, String JavaDoc strDefault, String JavaDoc strValor){
108     try{
109       if(strValor == null) {
110         strValor = strDefault;
111       }
112       if(strValor!=null)
113       {
114         if(strValor.compareTo("")==0)
115           ps.setNull(posicion, tipo);
116         else
117         {
118           switch (tipo) {
119             case 2: ps.setLong(posicion, Long.valueOf(strValor).longValue());
120                       break;
121             case 12: ps.setString(posicion,strValor);
122                       break;
123             case java.sql.Types.LONGVARCHAR:
124                       ps.setString(posicion, strValor);
125                       break;
126             case 0: ps.setDouble(posicion, Double.valueOf(strValor).doubleValue());
127                     break;
128           }
129
130         }
131       }
132       else
133         ps.setNull(posicion, tipo);
134     }catch(Exception JavaDoc e){
135       e.printStackTrace();
136       return(false);
137     }
138     return(true);
139   }
140
141   public static String JavaDoc getValue(ResultSet result, String JavaDoc strField) throws java.sql.SQLException JavaDoc{
142     String JavaDoc strValueReturn = result.getString(strField);
143     if (result.wasNull()) strValueReturn = "";
144     return strValueReturn;
145   }
146
147   public static String JavaDoc getValue(ResultSet result, int pos) throws java.sql.SQLException JavaDoc{
148     String JavaDoc strValueReturn = result.getString(pos);
149     if (result.wasNull()) strValueReturn = "";
150     return strValueReturn;
151   }
152
153   public static String JavaDoc getDateValue(ResultSet result, String JavaDoc strField, String JavaDoc strDateFormat) throws java.sql.SQLException JavaDoc{
154     // Format the current time.
155
String JavaDoc strValueReturn;
156     Date JavaDoc date = result.getDate(strField);
157     if (result.wasNull()) {
158       strValueReturn = "";
159     } else {
160       // SimpleDateFormat formatter = new SimpleDateFormat ("dd-MM-yyyy");
161
SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc(strDateFormat);
162       strValueReturn = formatter.format(date);
163     }
164     return strValueReturn;
165   }
166
167   public static String JavaDoc getDateValue(ResultSet result, String JavaDoc strField) throws java.sql.SQLException JavaDoc{
168     return getDateValue(result, strField, "dd-MM-yyyy");
169   }
170
171   public static String JavaDoc getBlobValue(ResultSet result, String JavaDoc strField) throws java.sql.SQLException JavaDoc{
172     String JavaDoc strValueReturn = "";
173     Blob blob = result.getBlob(strField);
174     if (result.wasNull()) {
175       strValueReturn = "";
176     } else {
177       int length = (int)blob.length();
178       if (length > 0) strValueReturn = new String JavaDoc(blob.getBytes(1, length));
179     }
180     return strValueReturn;
181   }
182
183   public static String JavaDoc getStringCallableStatement(CallableStatement cs, int intField) throws java.sql.SQLException JavaDoc{
184     String JavaDoc strValueReturn = cs.getString(intField);
185     if (strValueReturn == null) strValueReturn = "";
186     return strValueReturn;
187   }
188 }
189
Popular Tags