/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
*/
package org.biojava.bio.seq.db.biosql;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import org.biojava.bio.BioRuntimeException;
/**
* This is a DBHelper
that provides support for the
* Hypersonic RDBMS. See the HSQLDB home page
*
* @author Len Trigg
* @author Richard Holland
* @deprecated Use hibernate and org.biojavax.bio.db.*
*/
public class HypersonicDBHelper extends DBHelper {
// Inherit docs
public int getInsertID(Connection conn, String table, String columnName) throws SQLException {
Statement st = null;
ResultSet rs = null;
try {
st = conn.createStatement();
rs = st.executeQuery("call identity()");
int id = -1;
if (rs.next()) {
id = rs.getInt(1);
}
if (id < 0) {
throw new SQLException("Couldn't get last insert id");
}
return id;
} finally {
if (rs != null) try { rs.close(); } catch (SQLException se) { }
if (st != null) try { st.close(); } catch (SQLException se) { }
}
}
// Inherit docs
public boolean containsTable(DataSource ds, String tablename) {
if (ds == null) {
throw new NullPointerException("Require a datasource.");
}
if ((tablename == null) || (tablename.length() == 0)) {
throw new IllegalArgumentException("Invalid table name given");
}
//System.err.println("Checking for table existence: " + tablename);
Connection conn = null;
try {
boolean present;
conn = ds.getConnection();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement("select top 1 * from " + tablename);
ps.executeQuery();
present = true;
} catch (SQLException ex) {
//System.err.println("Table " + tablename + " does not exist.");
present = false;
} finally {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
}
return present;
} catch (SQLException ex) {
if (conn!=null) try {conn.close();} catch (SQLException ex3) {}
throw new BioRuntimeException(ex);
}
}
}