JdbcDataTransaction.java
package eu.javaexperience.datastorage.jdbcImpl;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import eu.javaexperience.database.JDBC;
import eu.javaexperience.database.collection.JdbcMap;
import eu.javaexperience.datastorage.DataTransaction;
import eu.javaexperience.datastorage.TransactionException;
import eu.javaexperience.reflect.Mirror;
/**
* id,
* key,
* value
*
*
* */
@Deprecated
public class JdbcDataTransaction extends JdbcMap<String, Object> implements DataTransaction
{
public JdbcDataTransaction(Connection conn, String table, int group)
{
super(createAccessor(conn, table, group));
}
protected static JdbcMapImplProvider<String, Object> createAccessor(final Connection conn, final String table, final int grp)
{
return new JdbcMapImplProvider<String, Object>()
{
@Override
public Connection getConnection()
{
return conn;
}
@Override
public void releaseConnection(Connection conn)
{
try
{
conn.close();
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
}
}
@Override
public ResultSet selectWhereKey(Connection conn, String key)
{
try
{
PreparedStatement ps = conn.prepareStatement("SELECT key, value FROM "+table+" where grp="+grp+" AND key = ?");
ps.setString(1, key);
return ps.executeQuery();
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public ResultSet selectWhereValue(Connection conn, Object val)
{
try
{
PreparedStatement ps = conn.prepareStatement("SELECT key, value FROM "+table+" where grp="+grp+" AND value = ?");
ps.setObject(1, val);
return ps.executeQuery();
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public ResultSet selectAll(Connection conn)
{
try
{
PreparedStatement ps = conn.prepareStatement("SELECT key, value FROM "+table+" where grp="+grp);
return ps.executeQuery();
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public String extractKey(ResultSet rs)
{
try
{
return rs.getString("key");
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public Object extractValue(ResultSet rs)
{
try
{
return rs.getObject("value");
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public Object insertOrUpdate(Connection conn, String key, Object value)
{
return null;
}
@Override
public Object removeByKey(Connection conn, Object key)
{
try
{
PreparedStatement ps = conn.prepareStatement("DELETE FROM "+table+" where grp="+grp+" AND key = ?");
ps.setString(1, (String) key);
return ps.executeQuery();
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return null;
}
}
@Override
public int getMappingCount(Connection conn)
{
try
{
return JDBC.getInt(conn, "SELECT count(*) FROM "+table+" WHERE grp = "+grp);
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
return -1;
}
}
@Override
public void emptyOutMapping(Connection conn)
{
try
{
JDBC.execute(conn, "DELETE FROM "+table+" WHERE grp = "+grp);
}
catch(Exception e)
{
Mirror.propagateAnyway(e);
}
}
};
}
@Override
public void close() throws IOException {
// TODO Auto-generated method stub
}
@Override
public void commit() throws TransactionException {
// TODO Auto-generated method stub
}
@Override
public void rollback() {
// TODO Auto-generated method stub
}
}