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일 수요일

([닷넷,C#,기초학원,WPF학원,자마린학원추천](C#,닷넷기초강좌#8)쓰레드개념과 C#에서 멀티쓰레드로 프로그래밍 하는 방법

[C#강의,닷넷강의,WPF강의추천_탑크리에듀](C#,닷넷구조체동영상교육#7)구조체 개요 및 간단한 예제

[자바강의,스프링강의,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; 
}

[자바강의,스프링강의,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