Created
December 15, 2014 17:01
-
-
Save easylogic/53347e1289ab483e8018 to your computer and use it in GitHub Desktop.
QueryBuilder 가 있어야 할 듯 하다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 로 가지고 온다. | |
흠 디비를 JSON 으로 바꾸면 좋을 듯 ? 자료형에 상관 없으니 ..
매번 업그레이드 할 때마다 ㅡㅡ; 마이그레이션을 안해도 됨 .
필드만 수정하면 되니깐
QueryBuilder
.select("field1", "field2", "max field1", "min field2", "avg field3", "count field4")
.from()
.where()
.group("field1", "field2");
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
Select 에 인덱스를 만들까?
QueryBuilder.select().form().index("$1.field", "$2.field2").where("$1.field = ", 10)