/** * Called after creating the first connection. The adapter should create its caches and do all initialization it requires. Most * importantly, the SQL query cache should be created. * * @param cnx * an open ready to use connection to the database. */ public void prepare(Properties p, Connection cnx) { this.tablePrefix = p.getProperty("com.enioka.jqm.jdbc.tablePrefix", ""); queries.putAll(DbImplBase.queries); for (Map.Entry<String, String> entry : DbImplBase.queries.entrySet()) { queries.put(entry.getKey(), this.adaptSql(entry.getValue())); } }
/** * Gets the interpolated text of a query from cache. If key does not exist, an exception is thrown. * * @param key * name of the query * @return the query text */ String getQuery(String key) { String res = this.adapter.getSqlText(key); if (res == null) { throw new DatabaseException("Query " + key + " does not exist"); } return res; }
public String paginateQuery(String sql, int start, int stopBefore, List<Object> prms) { return this.parent.getAdapter().paginateQuery(sql, start, stopBefore, prms); }
@Override public void prepare(Properties p, Connection cnx) { super.prepare(p, cnx); // We do NOT want to use paginateQuery on each poll query as we want polling to be as painless as possible, so we pre-paginate it. queries.put("ji_select_poll", queries.get("ji_select_poll") + " LIMIT ?"); }
QueryPreparation q = new QueryPreparation(); q.parameters = new ArrayList<Object>(Arrays.asList(params)); q.sqlText = this.parent.getAdapter().adaptSql(rawQuery); this.parent.getAdapter().beforeUpdate(_cnx, q);
private QueryPreparation adapterPreparation(String query_key, boolean forUpdate, Object... params) { QueryPreparation qp = new QueryPreparation(); qp.parameters = new ArrayList<Object>(Arrays.asList(params)); qp.queryKey = query_key; qp.sqlText = parent.getQuery(query_key); qp.forUpdate = forUpdate; this.parent.getAdapter().beforeUpdate(_cnx, qp); return qp; }
public List<JobInstance> poll(Queue queue, int nbSlots) { return this.parent.getAdapter().poll(this, queue, nbSlots); } }
ps = _cnx.prepareStatement(q.sqlText, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); else ps = _cnx.prepareStatement(q.sqlText, this.parent.getAdapter().keyRetrievalColumn());
if (newAdpt.compatibleWith(product))
parent.getAdapter().setNullParameter(position, s);
int to = db_schema_version; List<String> toApply = new ArrayList<String>(); toApply.addAll(adapter.preSchemaCreationScripts());
@Override public void prepare(Properties p, Connection cnx) { super.prepare(p, cnx); // We do NOT want to use paginateQuery on each poll query as we want polling to be as painless as possible, so we pre-paginate it. queries.put("ji_select_poll", queries.get("ji_select_poll") + " LIMIT ?"); }
QueryPreparation q = new QueryPreparation(); q.parameters = new ArrayList<>(Arrays.asList(params)); q.sqlText = this.parent.getAdapter().adaptSql(rawQuery); this.parent.getAdapter().beforeUpdate(_cnx, q);
private QueryPreparation adapterPreparation(String query_key, boolean forUpdate, Object... params) { QueryPreparation qp = new QueryPreparation(); qp.parameters = new ArrayList<>(Arrays.asList(params)); qp.queryKey = query_key; qp.sqlText = parent.getQuery(query_key); qp.forUpdate = forUpdate; this.parent.getAdapter().beforeUpdate(_cnx, qp); return qp; }
public List<JobInstance> poll(Queue queue, int nbSlots) { return this.parent.getAdapter().poll(this, queue, nbSlots); } }
ps = _cnx.prepareStatement(q.sqlText, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); else ps = _cnx.prepareStatement(q.sqlText, this.parent.getAdapter().keyRetrievalColumn());
if (newAdpt.compatibleWith(product))
parent.getAdapter().setNullParameter(position, s);
int to = db_schema_version; List<String> toApply = new ArrayList<>(); toApply.addAll(adapter.preSchemaCreationScripts());
@Override public void prepare(Properties p, Connection cnx) { super.prepare(p, cnx); // We do NOT want to use paginateQuery on each poll query as we want polling to be as painless as possible, so we pre-paginate it. queries.put("ji_select_poll", queries.get("ji_select_poll") + " LIMIT ?"); }