기존에 사용하던 Spring 3.1에서 3.2.3으로 변경했다. 하는김에 myBatis도 최신으로 변경.. 
이러다가 그냥 back-end를 다 최신으로 변경하기로 작정하고 작업 진행..

applicationContext.xml 에서 myBatis 설정이 조금 변경되었다. 

org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
org.springframework.orm.ibatis.SqlMapClientFactoryBean
as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
org.springframework.orm.ibatis.SqlMapClientTemplate
as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)

3.2 버전 이전은 위 클래스를 이용하여 myBatis 설정을 했지만 3.2 이후부터는 불가능하다.

> myBatis configuration codes in applicationContext
	
	
		
		
		
		
		
			
		
	

심플하다... SqlMapConfig에 mapper를 일일이 적어주어도 되지만
mapperLocations를 이용하여 패키지 검색으로 자동 매핑되게도 할 수 있고 이게 더 편하다.

또 하나, 기본 설정 그대로 사용하고자 한다면 configLocation을 적지 않아도 된다.

아래는 maven에서의 myBatis 설정에 관련된 코드.
	
		
		3.2.2
		1.2.0
		
	

	
		
		
			org.mybatis
			mybatis
			${org.mybatis.version}
		
		
			org.mybatis
			mybatis-spring
			${org.mybatis.spring.version}
		
	




 

 


Spring은 자체 maven Repository가 존재한다. 
이곳에서 라이브러리를 통으로 내려 받을 수 있다. 

site : https://ebr.springsource.com/repository/app/ 
	
		
		    com.springsource.repository.bundles.release
		    SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases
		    http://repository.springsource.com/maven/bundles/release
		
		
		
		    com.springsource.repository.bundles.external
		    SpringSource Enterprise Bundle Repository - External Bundle Releases
		    http://repository.springsource.com/maven/bundles/external
		
		
		
		    com.springsource.repository.libraries.release
		    SpringSource Enterprise Bundle Repository - SpringSource Library Releases
		    http://repository.springsource.com/maven/libraries/release
		
		
		
		    com.springsource.repository.libraries.external
		    SpringSource Enterprise Bundle Repository - External Library Releases
		    http://repository.springsource.com/maven/libraries/external
		
	

	
		
			org.springframework
			org.springframework.spring-library
	    	libd
			3.2.3.RELEASE
			
		        
					javax.servlet
		            com.springsource.javax.servlet
				
			
		
	


junit으로 테스트를 진행하고자 할 경우 아래 의존성도 추가해 주어야 한다.
		
			org.springframework
			org.springframework.test
			3.2.3.RELEASE
		

'Framework > Spring' 카테고리의 다른 글

myBatis DAO Pattern example  (0) 2013.07.19
Spring 3.2.3 + myBatis 3.2.2  (0) 2013.07.19
Spring Framework 3.2.3 Maven으로 한번에 추가하기..  (0) 2013.07.18
Spring 3.2.2 + Tiles 3.0  (0) 2013.05.22
Spring Security 설정.  (2) 2011.08.30
[2011-05-26] Spring Security 설정 오류.  (0) 2011.05.26

Tiles 3.0을 사용하기 위해선 Spring Framework 3.2 이상의 버전이 필요하다.

기존 버전과 비교했을때 설정이 간소화 되었다.

http://dhruvgairola.blogspot.kr/2013/03/spring-mvc-with-apache-tiles-3.html 

'Framework > Spring' 카테고리의 다른 글

Spring 3.2.3 + myBatis 3.2.2  (0) 2013.07.19
Spring Framework 3.2.3 Maven으로 한번에 추가하기..  (0) 2013.07.18
Spring 3.2.2 + Tiles 3.0  (0) 2013.05.22
Spring Security 설정.  (2) 2011.08.30
[2011-05-26] Spring Security 설정 오류.  (0) 2011.05.26
MySQL AutoReconnect 설정.  (0) 2010.07.12


이 에러 발생시 Oracle JDBC Driver를 업데이트 해준다.

가령.. 11g 기준의 jar 파일이러단가..

JDK6을 지원하는 ojdbc6.jar로 교체하면 정상 작동한다. 
http://wiki.eclipse.org/EclipseLink/Examples/JPA/Pagination

 위 내용 중 쉽게 쓸만 한 것은 아래 코드이다.
Query query = em.createQuery("SELECT e FROM Employee e ORDER BY e.lastName ASC, e.firstName ASC");
query.setFirstResult(5);
query.setMaxResults(5);
List emps = query.getResultList();

예제에는 오라클이라 되어 있는데 MySQL도 사용 가능하다.






 
설치된 Java 환경이 SE 인가 EE인가 살펴보자..

 



one-to-one 및 many-to-one일 경우
SE 환경에서는 JPA가 fetch 무시하고 EAGER로 적용해버린다. 

고로.. SE에서는 쓸모가 없다.. ;; 


http://www.java2s.com/Code/Java/JPA/CatalogJPA.htm

잘 되어 있고 코드도 어렵지 않다. 


http://www.objectdb.com/java/jpa/persistence

JPA 각 클래스 및 짤막한 예제 코드가 있는 곳. 

import org.apache.commons.io.IOUtils;

private void copy(File source, File target){
		try {
			in = new FileInputStream(source);
			out = new FileOutputStream(target, true);
		
        	IOUtils.copy(in, out);
        	
        } catch (IOException ex) {
        	ex.printStackTrace();
        	
        } finally {
        	IOUtils.closeQuietly(in);
            IOUtils.closeQuietly(out);
        }
}

FileOutputStream의 생성자 중 두번째 인자는 append 여부.






	
	   
	    	{	CALL LOMS_APP.PRC_CLEAN_ATTRES(?, ?, ?)	}

	

{ 와 CALL 사이에... tab (\t)가 들어 있는데 오류 난다... 헐...
	
	    
	    	{CALL PRC_CLEAN_ATTEND(?, ?, ?)}
	    
	









<01. package 생성>
src 하위에 자신만의 package를 생성한다. 

<02. Table 가져오기>
만든 패키지에서 우클릭 후 JPA Entities from Tables를 눌러 아래 화면으로 이동한다.
만약, MySQL Workbench를 이용한다면 DB 모델링을 끝마친후 DB를 생성한 다음 이 작업을 하게 되는데
모델링된 결과를 바로 Java로 가지고 올 수 있어 편하다.
 

<03. DB 접속>
프로젝트 생성시 만들었던 DB Connection을 이용해 DB내의 Table 정보를 보여준다. 
Java로 가져올 Table(Entity)를 선택한다. 

<03-1. 관계설정>
만약 Entity간의 관계가 설정이 되어 있다면 자동으로 관계를 설정해준다.
이는 Entity 설정에 의한 자동 매핑으로 Entity에 관계 설정이 없다면 단일 테이블(Entity)로 판단하고 관계를 생성하지 않는다. 

<03-2. 추가 설정>
먼저 PK 생성 방법, 늦은 로딩 등을 설정할 수가 있다. 
여기서 관계를 표현하기 위한 방법을 지정하여야 하는데, 1:N의 관계라면 N을 표현할 type을 지정해준다.
List가 편하기에 List로 설정 한 것.

만약 확장(extends)해야 할 클래스가 있따면 Superclass에 적어주면 되고
어떤 인터페이스를 구현해야 할 경우도 interfaces에 적어주면 된다.
 

<03-4. 테이블 변환 정보>
각 테이블이 자바로 변환될 때 표현될 필드와 클래스 이름을 표시해준다.
접근자와 각 컬럼(필드)별 이름을 별도 지정해 줄 수 있다. 

<04. Table을 java로 가져온 결과>
PK가 붙은 파일은 복합 키 구조일 경우 자동으로 생성되는 파일이다.

 
추가 작업은 Spring 3.1, myBatis 설정 추가와 JPA와 Spring을 이어줄 JPA Dialect를 만들어 주는 것 정도?


+ Recent posts