2016년 12월 1일 목요일
[C#교육,닷넷교육,자마린교육,WPF교육추천](C#,닷넷구조체강좌)구조체 개요 및 간단한 예제
탑크리에듀(http://www.topcredu.co.kr),오라클자바커뮤니티(http://ojc.asia)에서 제공하는 초보자를 위한 닷넷, C# 기초강좌 입니다. 이번강좌에서는 C#의 구조체에 개한 개요 및 심플한 예제를 설명하였습니다. 간단히 이론을 익히신 후 실습을 통해 이해해 보는 강좌 입니다.
동영상으로 보시려면 페이스북(http://www.facebook.com/topcredu.co.kr) 또는 유튜브(https://youtu.be/BviUL_FJFOE)에서 확인 기능하십니다.
2016년 11월 30일 수요일
[자바강의,스프링강의,JPA강의추천_탑크리에듀][JPA,Querydsl강좌]JPA에서 QueryDSL4.X사용하기위해 JPAQuery,JPAQueryFactory인스턴스 생성방법예문
[JPA,Querydsl강좌]JPA에서 QueryDSL4.X사용하기위해 JPAQuery,JPAQueryFactory인스턴스 생성방법예문
첨부파일 참조하세요.
첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=209
[자바강의,스프링강의,JPA강의추천_탑크리에듀][스프링JPA강좌]WEB MVC,@NamedQuery,@Query,메소드 이름을 통해 쿼리를 정의하는 예제(마리아DB실습)
[스프링JPA강좌]WEB MVC,@NamedQuery,@Query,메소드 이름을 통해 쿼리를 정의하는 예제(마리아DB실습)
다양한 형태의 Spring Data JPA 쿼리 예제를 실습해 보세요...
천천히 하나씩 따라 하시면서 스프링 Data JPA에 대해서 이해해 보세요~
감사합니다.
첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=208
[자바강의,스프링강의,JPA강의추천_탑크리에듀][스프링JPA강좌]QueryDSL4.X,JPAQueryFactory쿼리예문(조인,서브쿼리,GroupBy,OrderBy,삭제,수정,조회) ,열심히공부하세요
[스프링JPA강좌]QueryDSL4.X,JPAQueryFactory쿼리예문(조인,서브쿼리,GroupBy,OrderBy,삭제,수정,조회) ,열심히공부하세요
감사합니다.
아래 예문 참조하세요~
--------------------------------------------------------------------------------------------------------------------------
@Autowired
JPAQueryFactory queryFactory;
////////////////////////////////// QueryDSL용 메소드
@Override
/* Emp 테이블에서 job을 조건으로 검색, 이름 내림차순으로 */
public List<Emp> selectByJobOrderByEnameDesc(String job) {
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.job.eq(job))
.orderBy(emp.ename.desc()).fetch();
return emps;
}
@Override
@Transactional
/* job을 입력받아 EMP 삭제 */
public Long deleteByJob(String job) {
// new JPADeleteClause(em, emp)
// .where(emp.job.eq(job))
// .execute();
Long affectedRow = queryFactory.delete(emp)
.where(emp.job.eq(job))
.execute();
return affectedRow;
}
/* 사번과 새이름을 입력받아 이름을 변경 */
@Override
@Transactional
public Long updateByEmpno(Long empno, String newEname) {
// new JPAUpdateClause(em, emp)
// .where(emp.empno.eq(empno))
// .set(emp.ename, newEname)
// .execute();
Long affectedRow = queryFactory.update(emp)
.where(emp.empno.eq(empno))
.set(emp.ename, newEname)
.execute();
return affectedRow;
}
/* job을 검색조건으로 ename, job 추출 */
@Override
public List<Tuple> selectEnameJobByEmpno(Long empno) {
//Multi Column Select
List<Tuple> result = queryFactory.select(emp.ename, emp.job)
.from(emp)
.where(emp.empno.eq(empno))
.fetch();
return result;
}
/* Emp 테이블에서 job별로 GroupBy후 그룹별 급여평균추출
단 그룹의 급여 합계가 주어진 합보다 큰경우 */
@Override
public List<Tuple> selectSalAvgGroupbyJob(Long sumSal) {
List<Tuple> result = queryFactory
.select(emp.job, emp.sal.avg())
.from(emp)
.groupBy(emp.job)
.having(emp.sal.sum().gt(sumSal))
.fetch();
return result;
}
/* Emp 테이블에서 입력받은 부서원 이름 및 부서명을 추출하는데 Dept 테이블과 조인
부서코드를 안가지는 사원은 추출되지 않는다 */
@Override
public List<Tuple> selectEmpEnameDnameJoinDept(Long deptno) {
List<Tuple> emps = queryFactory
.select(emp.ename, dept.dname)
.from(emp)
.innerJoin(emp.dept, dept)
.where(emp.dept.deptno.eq(deptno))
.fetch();
return emps;
}
/* Emp 테이블에서 최대급여 사원 추출, 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSal() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions.select(e.sal.max()).from(e)))
.fetch();
return emps;
}
/* 부서별 최대급여받는 사원 추출 , 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSalOfDept() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions
.select(e.sal.max()).from(e)
.where(emp.dept.deptno.eq(e.dept.deptno))
))
.fetch();
return emps;
}
/* 자신이 속한 부서의 평균급여보다 급여가 많은 사원추출 ,서브쿼리 */
@Override
public List<Emp> selectEmpGreaterThanAvgSal() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.gt(
JPAExpressions
.select(e.sal.avg()).from(e)
.where(emp.dept.deptno.eq(e.dept.deptno))
))
.fetch();
return emps;
}
/* 입력받은 사원과 급여가 같은 사원추출 , 서브쿼리 */
/* 입력받은 사원은 출력안함 */
@Override
public List<Emp> selectEmpEqualsEmpno(Long empno) {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions
.select(e.sal).from(e)
.where(e.empno.eq(empno))
))
.where(emp.empno.ne(empno))
.fetch();
return emps;
}
/* Emp 테이블에서 급여상위 3명 추출 , 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSalTop3() {
List<Emp> emps = queryFactory.selectFrom(emp)
.orderBy(emp.sal.desc())
.limit(3)
.fetch();
return emps;
}
/* Dept 테이블에서 사원이 한명이라도 존재하는 부서명추출, 서브쿼리 */
@Override
public List<String> selectDeptExistsEmp() {
List<String> depts = queryFactory.select(dept.dname).from(dept)
.where(JPAExpressions
.selectFrom(emp)
.where(emp.dept.deptno.eq(dept.deptno)).exists()
)
.fetch();
return depts;
}
감사합니다.
아래 예문 참조하세요~
--------------------------------------------------------------------------------------------------------------------------
@Autowired
JPAQueryFactory queryFactory;
////////////////////////////////// QueryDSL용 메소드
@Override
/* Emp 테이블에서 job을 조건으로 검색, 이름 내림차순으로 */
public List<Emp> selectByJobOrderByEnameDesc(String job) {
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.job.eq(job))
.orderBy(emp.ename.desc()).fetch();
return emps;
}
@Override
@Transactional
/* job을 입력받아 EMP 삭제 */
public Long deleteByJob(String job) {
// new JPADeleteClause(em, emp)
// .where(emp.job.eq(job))
// .execute();
Long affectedRow = queryFactory.delete(emp)
.where(emp.job.eq(job))
.execute();
return affectedRow;
}
/* 사번과 새이름을 입력받아 이름을 변경 */
@Override
@Transactional
public Long updateByEmpno(Long empno, String newEname) {
// new JPAUpdateClause(em, emp)
// .where(emp.empno.eq(empno))
// .set(emp.ename, newEname)
// .execute();
Long affectedRow = queryFactory.update(emp)
.where(emp.empno.eq(empno))
.set(emp.ename, newEname)
.execute();
return affectedRow;
}
/* job을 검색조건으로 ename, job 추출 */
@Override
public List<Tuple> selectEnameJobByEmpno(Long empno) {
//Multi Column Select
List<Tuple> result = queryFactory.select(emp.ename, emp.job)
.from(emp)
.where(emp.empno.eq(empno))
.fetch();
return result;
}
/* Emp 테이블에서 job별로 GroupBy후 그룹별 급여평균추출
단 그룹의 급여 합계가 주어진 합보다 큰경우 */
@Override
public List<Tuple> selectSalAvgGroupbyJob(Long sumSal) {
List<Tuple> result = queryFactory
.select(emp.job, emp.sal.avg())
.from(emp)
.groupBy(emp.job)
.having(emp.sal.sum().gt(sumSal))
.fetch();
return result;
}
/* Emp 테이블에서 입력받은 부서원 이름 및 부서명을 추출하는데 Dept 테이블과 조인
부서코드를 안가지는 사원은 추출되지 않는다 */
@Override
public List<Tuple> selectEmpEnameDnameJoinDept(Long deptno) {
List<Tuple> emps = queryFactory
.select(emp.ename, dept.dname)
.from(emp)
.innerJoin(emp.dept, dept)
.where(emp.dept.deptno.eq(deptno))
.fetch();
return emps;
}
/* Emp 테이블에서 최대급여 사원 추출, 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSal() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions.select(e.sal.max()).from(e)))
.fetch();
return emps;
}
/* 부서별 최대급여받는 사원 추출 , 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSalOfDept() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions
.select(e.sal.max()).from(e)
.where(emp.dept.deptno.eq(e.dept.deptno))
))
.fetch();
return emps;
}
/* 자신이 속한 부서의 평균급여보다 급여가 많은 사원추출 ,서브쿼리 */
@Override
public List<Emp> selectEmpGreaterThanAvgSal() {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.gt(
JPAExpressions
.select(e.sal.avg()).from(e)
.where(emp.dept.deptno.eq(e.dept.deptno))
))
.fetch();
return emps;
}
/* 입력받은 사원과 급여가 같은 사원추출 , 서브쿼리 */
/* 입력받은 사원은 출력안함 */
@Override
public List<Emp> selectEmpEqualsEmpno(Long empno) {
QEmp e = new QEmp("e");
List<Emp> emps = queryFactory.selectFrom(emp)
.where(emp.sal.eq(
JPAExpressions
.select(e.sal).from(e)
.where(e.empno.eq(empno))
))
.where(emp.empno.ne(empno))
.fetch();
return emps;
}
/* Emp 테이블에서 급여상위 3명 추출 , 서브쿼리 */
@Override
public List<Emp> selectEmpMaxSalTop3() {
List<Emp> emps = queryFactory.selectFrom(emp)
.orderBy(emp.sal.desc())
.limit(3)
.fetch();
return emps;
}
/* Dept 테이블에서 사원이 한명이라도 존재하는 부서명추출, 서브쿼리 */
@Override
public List<String> selectDeptExistsEmp() {
List<String> depts = queryFactory.select(dept.dname).from(dept)
.where(JPAExpressions
.selectFrom(emp)
.where(emp.dept.deptno.eq(dept.deptno)).exists()
)
.fetch();
return depts;
}
[자바강의,스프링강의,JPA강의추천_탑크리에듀][스프링JPA,Querydsl강좌예제]QueryDSL4.X,JPAQueryFactory실습,조인,서브쿼리,입력,수정,삭제,orderBy,groupBy,inner join,JPAUdateClause,JPADeleteClause
[스프링JPA,Querydsl강좌예제]QueryDSL4.X,JPAQueryFactory실습,조인,서브쿼리,입력,수정,삭제,orderBy,groupBy,inner join,JPAUdateClause,JPADeleteClause
이전 예제의 QueryDSL 작성 부분만 JPAQueryFactory를 사용하여 구현해보자. 다른점은 JPAQueryFactory 인스턴스 생성을 위해 스프링 부트 메인에 @Bean으로 정의한 부분과 EmpRepositoryImpl의 쿼리 작성 부분이 조금 다르고 groupBy 처리 메소드가 추가되었다.
첨부파일 참조 하세요.
첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=206
이전 예제의 QueryDSL 작성 부분만 JPAQueryFactory를 사용하여 구현해보자. 다른점은 JPAQueryFactory 인스턴스 생성을 위해 스프링 부트 메인에 @Bean으로 정의한 부분과 EmpRepositoryImpl의 쿼리 작성 부분이 조금 다르고 groupBy 처리 메소드가 추가되었다.
첨부파일 참조 하세요.
첨부파일 URL참조 - http://ojc.asia/bbs/board.php?bo_table=LecJpa&wr_id=206
피드 구독하기:
글 (Atom)