Spring Boot+JOOQ(5)진급 조회 조작
3281 단어 자바 학습
count()
코드:
dslContext.selectCount().from(YOUR_TABLE).fetchOne().value1();
dslContext.selectCount().from(YOUR_TABLE).fetchOne().component1();
selectCount()는 count 작업 을 수행 하고 fetchOne()은 검색 결 과 를 얻 는 첫 줄,value 1()또는 component 1()은 첫 번 째 열의 수 치 를 얻 습 니 다.value 1()과 component 1()방법 은 모두 RecordImpl 에 포함 되 어 있 으 며 같은 방법 을 호출 하 였 습 니 다.
public final T1 component1() {
return this.get(0);
}
public final T1 value1() {
return this.get(0);
}
groupBy()
코드:
dslContext.select(POJO.COLUMN).from(YOUR_TABLE).groupBy(POJO.COLUMN).fetchInto(POJO.class);
sql 문법 처럼 groupby 필드 는 select 에 나타 나 야 합 니 다.그렇지 않 으 면 컴 파일 기간 에 프로그램 이 이상 을 던 집 니 다.fetch Into()는 fetch 후의 결 과 를 어떤 종류 로 매 핑 할 지 지정 합 니 다.실제로,우 리 는 분류 한 그룹의 데 이 터 를 저장 하기 위해 맵 을 더 많이 만 들 것 이다.따라서 우 리 는 우리 가 필요 로 하 는 모든 데 이 터 를 직접 추출 한 다음 에 자바 8 의 Stream.Foreach()와 결합 하여.filter()로 실현 할 수 있다.
Map> map = new HashMap<>();
List keys= dslContext.select().from(YOUR_TABLE).fetchInto(POJO1.class);
List values= dslContext.select().from(YOUR_TABLE).fetchInto(POJO2.class);
values.stream().forEach(v->{
map.put(v.VALUENAME,keys.stream().filter(k -> CONDITION).collect(Collectors.toList()));
});
having()
코드:
dslContext.select(POJO.COLUMN).from(YOUR_TABLE).groupBy(POJO.COLUMN).having(CONDITION).fetchInto(POJO.class);
join()
코드:
dslContext.select().from(TABLE1).join(TABLE2).on(CONDITION).fetch();
join()이후 에 얻 은 실 체 는 보통 jooq 가 생 성 한 실체 와 다른 새로운 실체 로 다음 과 같은 방법 으로 유형 전환 을 할 수 있 습 니 다.
dslContext.select(TABLE1.id, TABLE1.name, TABLE2.age).from(TABLE1).join(TABLE2).on(CONDITION).fetch().map(r->{
NewModel nm = new NewModel();
nm.setId(r.get(0,String.class));
nm.setName(r.get(1,String.class));
nm.setAge(r.get(2,Integer.class));
return nm;
});
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NewModel {
private String id;
private String name;
private Integer age;
}
우 리 는 Table 1 에 두 열,id 와 name,Table 2 에 두 열,id 와 age 가 있다 고 가정 합 니 다.select()에서 지정 한 조회 열,lambda 표현 식 의 set 방법 은 select 의 필드 순서 와 일치 해 야 합 니 다.
fetchOne()과 fetchAny()
fetchOne()과 fetchAny()는 모두 결과 집합 을 되 돌려 주 는 한 줄 의 데이터 입 니 다.이들 의 차 이 는 fetchOne()이 조회 한 결과 집합 데이터 줄 수 는 0 줄 또는 1 줄 이 고 그 중에서 첫 줄 로 돌아 가 0 줄 의 경우 null 을 돌려 주 는 것 입 니 다.fetchAny()에서 조회 한 결과 집합의 데이터 줄 수 는 임의의 줄 수 이 며,그 중에서 첫 줄 을 되 돌려 줍 니 다.fetchOne()방법 으로 되 돌아 오 는 데이터 세트 줄 수가 한 줄 이상 일 때 TooMany Rows Exception 이 발생 합 니 다.
org.jooq.exception.TooManyRowsException: Cursor returned more than one result
at org.jooq.impl.Tools.fetchOne(Tools.java:1815) ~[jooq-3.11.10.jar:na]
at org.jooq.impl.AbstractResultQuery.fetchOne(AbstractResultQuery.java:545) ~[jooq-3.11.10.jar:na]
at org.jooq.impl.AbstractResultQuery.fetchOneInto(AbstractResultQuery.java:568) ~[jooq-3.11.10.jar:na]
at org.jooq.impl.SelectImpl.fetchOneInto(SelectImpl.java:2899) ~[jooq-3.11.10.jar:na]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 의 각종 암호 화 알고리즘JAVA 에서 저 희 를 위해 풍부 한 암호 화 기술 을 제 공 했 습 니 다. 기본적으로 단 방향 암호 화 와 비대 칭 암호 화로 나 눌 수 있 습 니 다. 1. 단 방향 암호 화 알고리즘 단 방향 암호 화 알고리...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.