Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
AnalyzerBeans Copyright (C) 2014 Neopost - Customer Information Management This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the GNU Lesser General Public License, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this distribution; if not, write to: Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA
 
 package org.eobjects.analyzer.storage;
 
 
 
 public final class SqlDatabaseUtils {
 
 	private final static Logger logger = LoggerFactory.getLogger(SqlDatabaseUtils.class);
 
 	public final static String CREATE_TABLE_PREFIX = "CREATE CACHED TABLE ";
 
 	private SqlDatabaseUtils() {
 		// prevent instantiation
 	}
 
 	public static String getSqlType(Class<?> valueType) {
 		if (String.class == valueType) {
 			return "VARCHAR";
 		}
 		if (Number.class == valueType) {
 			return "DOUBLE";
 		}
 		if (Integer.class == valueType) {
 			return "INTEGER";
 		}
 		if (Long.class == valueType) {
 			return "BIGINT";
 		}
 		if (Double.class == valueType) {
 			return "DOUBLE";
 		}
 		if (Short.class == valueType) {
 			return "SMALLINT";
 		}
 		if (Float.class == valueType) {
 			return "FLOAT";
 		}
 		if (BigInteger.class == valueType) {
 			return "BIGINT";
 		}
 		if (Character.class == valueType) {
 			return "CHAR";
 		}
 		if (Boolean.class == valueType) {
 			return "BOOLEAN";
 		}
 		if (Byte.class == valueType) {
 			return "BINARY";
 		}
 		if (ReflectionUtils.isDate(valueType)) {
 			return "TIMESTAMP";
 		}
 		if (ReflectionUtils.isByteArray(valueType)) {
 			return "BLOB";
 		}
 		throw new UnsupportedOperationException("Unsupported value type: " + valueType);
 	}
 
 	public static void performUpdate(Connection connectionString sql) {
 		Statement st = null;
 		try {
 			st = connection.createStatement();
 			st.executeUpdate(sql);
 		} catch (SQLException e) {
 			throw new IllegalStateException(e);
 		} finally {
 			safeClose(nullst);
 		}
 	}
 
 	public static void safeClose(ResultSet rsStatement st) {
 		if (rs != null) {
 			boolean close = true;
			try {
				if (rs.isClosed()) {
					close = false;
						.info("result set is already closed: {}"rs);
						StackTraceElement[] stackTrace = new Throwable().getStackTrace();
						for (int i = 0; i < stackTrace.length && i < 5; i++) {
							.info(" - stack frame {}: {}"istackTrace[i]);
						}
					}
				}
catch (Throwable e) {
				.debug("could not determine if result set is already closed"e);
			}
			if (close) {
				.debug("closing result set: {}"rs);
				try {
					rs.close();
catch (SQLException e) {
					.warn("could not close result set"e);
				}
			}
		}
		if (st != null) {
			boolean close = true;
			try {
				if (st.isClosed()) {
					close = false;
						.info("statement is already closed: {}"st);
						StackTraceElement[] stackTrace = new Throwable().getStackTrace();
						for (int i = 0; i < stackTrace.length && i < 5; i++) {
							.info(" - stack frame {}: {}"istackTrace[i]);
						}
					}
				}
catch (Throwable e) {
				.debug("could not determine if statement is already closed"e);
			}
			if (close) {
				.debug("closing statement: {}"st);
				try {
					st.close();
catch (SQLException e) {
					.warn("could not close statement"e);
				}
			}
		}
	}
New to GrepCode? Check out our FAQ X