Esempio n. 1
0
 private SQLStatement getSelectStatement(boolean distinct) {
   SQLStatement stat = new SQLStatement(db);
   stat.appendSQL("SELECT ");
   if (distinct) {
     stat.appendSQL("DISTINCT ");
   }
   return stat;
 }
 void appendSelectList(SQLStatement stat) {
   for (int i = 0; i < fields.size(); i++) {
     if (i > 0) {
       stat.appendSQL(", ");
     }
     FieldDefinition def = fields.get(i);
     stat.appendSQL(def.columnName);
   }
 }
Esempio n. 3
0
 void appendWhere(SQLStatement stat) {
   if (!conditions.isEmpty()) {
     stat.appendSQL(" WHERE ");
     for (Token token : conditions) {
       token.appendSQL(stat, this);
       stat.appendSQL(" ");
     }
   }
 }
Esempio n. 4
0
 public <T> void appendSQL(SQLStatement stat, Query<T> query) {
   stat.appendSQL(name).appendSQL("(");
   int i = 0;
   for (Object o : x) {
     if (i++ > 0) {
       stat.appendSQL(",");
     }
     query.appendSQL(stat, o);
   }
   stat.appendSQL(")");
 }
Esempio n. 5
0
 public int delete() {
   SQLStatement stat = new SQLStatement(db);
   stat.appendSQL("DELETE FROM ");
   from.appendSQL(stat);
   appendWhere(stat);
   StatementLogger.delete(stat.getSQL());
   return stat.executeUpdate();
 }
Esempio n. 6
0
 /**
  * INTERNAL
  *
  * @param stat the statement
  * @param x the alias object
  */
 public void appendSQL(SQLStatement stat, Object x) {
   if (x == Function.count()) {
     stat.appendSQL("COUNT(*)");
     return;
   }
   Token token = Db.getToken(x);
   if (token != null) {
     token.appendSQL(stat, this);
     return;
   }
   SelectColumn<T> col = aliasMap.get(x);
   if (col != null) {
     col.appendSQL(stat);
     return;
   }
   stat.appendSQL("?");
   stat.addParameter(x);
 }
 <Y, X> void appendSelectList(SQLStatement stat, Query<Y> query, X x) {
   for (int i = 0; i < fields.size(); i++) {
     if (i > 0) {
       stat.appendSQL(", ");
     }
     FieldDefinition def = fields.get(i);
     Object obj = def.getValue(x);
     query.appendSQL(stat, obj);
   }
 }
Esempio n. 8
0
 public int update() {
   if (updateColumnDeclarations.size() == 0) {
     throw new RuntimeException("Missing set or increment call.");
   }
   SQLStatement stat = new SQLStatement(db);
   stat.appendSQL("UPDATE ");
   from.appendSQL(stat);
   stat.appendSQL(" SET ");
   int i = 0;
   for (UpdateColumn declaration : updateColumnDeclarations) {
     if (i++ > 0) {
       stat.appendSQL(", ");
     }
     declaration.appendSQL(stat);
   }
   appendWhere(stat);
   StatementLogger.update(stat.getSQL());
   return stat.executeUpdate();
 }
Esempio n. 9
0
 public long selectCount() {
   SQLStatement stat = getSelectStatement(false);
   stat.appendSQL("COUNT(*) ");
   appendFromWhere(stat);
   ResultSet rs = stat.executeQuery();
   Statement s = null;
   try {
     s = rs.getStatement();
     rs.next();
     long value = rs.getLong(1);
     return value;
   } catch (SQLException e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeSilently(rs);
     JdbcUtils.closeSilently(s);
   }
 }
Esempio n. 10
0
 @SuppressWarnings("unchecked")
 void appendFromWhere(SQLStatement stat) {
   stat.appendSQL(" FROM ");
   from.appendSQL(stat);
   for (SelectTable join : joins) {
     join.appendSQLAsJoin(stat, this);
   }
   appendWhere(stat);
   if (groupByExpressions != null) {
     stat.appendSQL(" GROUP BY ");
     int i = 0;
     for (Object obj : groupByExpressions) {
       if (i++ > 0) {
         stat.appendSQL(", ");
       }
       appendSQL(stat, obj);
       stat.appendSQL(" ");
     }
   }
   if (!orderByList.isEmpty()) {
     stat.appendSQL(" ORDER BY ");
     int i = 0;
     for (OrderExpression<T> o : orderByList) {
       if (i++ > 0) {
         stat.appendSQL(", ");
       }
       o.appendSQL(stat);
       stat.appendSQL(" ");
     }
   }
   if (limit > 0) {
     db.getDialect().appendLimit(stat, limit);
   }
   if (offset > 0) {
     db.getDialect().appendOffset(stat, offset);
   }
   StatementLogger.select(stat.getSQL());
 }
Esempio n. 11
0
 public String getSQL() {
   SQLStatement stat = getSelectStatement(false);
   stat.appendSQL("*");
   appendFromWhere(stat);
   return stat.getSQL().trim();
 }