android SQLite数据库组装sql的源码
2015-04-29 16:40
148 查看
public static String buildQueryString(
boolean distinct, String tables, String[] columns, String where,
String groupBy, String having, String orderBy, String limit) {
if (TextUtils.isEmpty(groupBy) && !TextUtils.isEmpty(having)) {
throw new IllegalArgumentException(
"HAVING clauses are only permitted when using a groupBy clause");
}
if (!TextUtils.isEmpty(limit) && !sLimitPattern.matcher(limit).matches()) {
throw new IllegalArgumentException("invalid LIMIT clauses:" + limit);
}
StringBuilder query = new StringBuilder(120);
query.append("SELECT ");
if (distinct) {
query.append("DISTINCT ");
}
if (columns != null && columns.length != 0) {
appendColumns(query, columns);
} else {
query.append("* ");
}
query.append("FROM ");
query.append(tables);
appendClause(query, " WHERE ", where);
appendClause(query, " GROUP BY ", groupBy);
appendClause(query, " HAVING ", having);
appendClause(query, " ORDER BY ", orderBy);
appendClause(query, " LIMIT ", limit);
return query.toString();
}
boolean distinct, String tables, String[] columns, String where,
String groupBy, String having, String orderBy, String limit) {
if (TextUtils.isEmpty(groupBy) && !TextUtils.isEmpty(having)) {
throw new IllegalArgumentException(
"HAVING clauses are only permitted when using a groupBy clause");
}
if (!TextUtils.isEmpty(limit) && !sLimitPattern.matcher(limit).matches()) {
throw new IllegalArgumentException("invalid LIMIT clauses:" + limit);
}
StringBuilder query = new StringBuilder(120);
query.append("SELECT ");
if (distinct) {
query.append("DISTINCT ");
}
if (columns != null && columns.length != 0) {
appendColumns(query, columns);
} else {
query.append("* ");
}
query.append("FROM ");
query.append(tables);
appendClause(query, " WHERE ", where);
appendClause(query, " GROUP BY ", groupBy);
appendClause(query, " HAVING ", having);
appendClause(query, " ORDER BY ", orderBy);
appendClause(query, " LIMIT ", limit);
return query.toString();
}
相关文章推荐
- 【android】Sqlite中使用SQL与其他数据库的区别
- 开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite
- Android sqlite数据库操作通用框架AHibernate(二)源码-用于交流
- 【android】Sqlite中使用SQL与其他数据库的区别
- Android SQLite数据库之一,使用sql语句操作SQLite数据库
- android: SQLite使用 SQL 操作数据库
- Android sqlite数据库操作通用框架AHibernate(二)源码-用于交流
- android SQLite数据库用法图文详解(附源码)
- Android-SQLite封装sql语句以及查看数据库
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式
- Android Sqlite数据库的升级(一)
- Android数据库编程:SqLiteOpenHelper的使用
- android 中 sqlite sql语句 参数 分析
- sql语句给数据库减肥,下面以网狐6603源码搭建为案例
- Android之数据库SQLite 详细介绍
- Android 根据sql文件创建数据库并插入数据
- android应用开发存储方式之SQLite(android自带的数据库)的一些个人理解
- Android中SQLiteDatabase操作【附源码】
- android SQLite数据库的使用
- Android数据库SQLite