Skip to content

Instantly share code, notes, and snippets.

@easylogic
Created December 15, 2014 17:01
Show Gist options
  • Save easylogic/53347e1289ab483e8018 to your computer and use it in GitHub Desktop.
Save easylogic/53347e1289ab483e8018 to your computer and use it in GitHub Desktop.
QueryBuilder 가 있어야 할 듯 하다.
class Table {
long field;
}
Table.find("id", 10);
Record r = QueryBuilder
.select("$1.field", "$2.field2")
.from(Table.class, Table2.class)
.join("$1.field = $2.field")
.where("$1.field = ", 10)
.and("$2.field2 !=", 10)
.offset(10)
.limit(10)
.exec();
Record 는 기본적으로 index 를 가지고
index 가 0 일때는 get 으로 바로 데이타를 가지고 올 수 있다.
r.get("field");
복수의 record 를 리턴했을 때는
r.get("field") 하면 해당 타입의 배열을
r.get("field", index) 하면 그 인덱스의 값만 가지고 온다.
Record r = QueryBuilder
.select("field1", "field2", "field3")
.from(BuildConfig.class)
.where("field1 =", 10)
.and("field2 != ", 20)
.exec();
r.getString("buildTime")
r.getInt("id")
r.getDouble("time")
r.getLong("aaa");
Record 는 JSONArray 를 구현한다. ?
그렇게 되면 실제 저장파일도 json 으로 하면 될 것 같은데.
전부다 바이너리가 될 필요가 없잖아 ?
타입 지정할 필요도 없고
한번 해볼까?
몇가지가 필요하다.
1. Insert
int rows = QueryBuilder.insert(Table.class).value("field", 1).value("field2", 2).value("field3", 3).exec();
2. Update
int rows = QueryBuilder.update(Table.class).div("field", 2).mul("field", 1).minus("field2", 2).plus("field3", 1).where("field2 = ", 1).exec();
3. Delete
int rows = QueryBuilder.delete(Table.class).where("field1 = ", 1).exec();
4. Select
Record list = QueryBuilder.select("field1", "field2", "field3").from(Table.class).where("field1 =", 10).limit(10).exec();
결과값은 모두 JSONArray 로 가지고 온다.
@easylogic
Copy link
Author

QueryBuilder
.select("field1", "field2", "max field1", "min field2", "avg field3", "count field4")
.from()
.where()
.group("field1", "field2");

@easylogic
Copy link
Author

binary data 를 json 형태로 바꾸어서 전달한다.
json 에 대한 query 를 만든다.
검색한다.

where("$.field.field.field = ", "3")

과연 될까? 설정 파일은 모두다 json 으로 바꿔도 되겠는데

흠 이걸왜 굳이 바이너리로 하고 있을까?

템플릿부터 바꿔야겠다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment