목적
spring 에서 퍼시스턴스 계층을 spring JDBC 가 아닌 다른 framework 써서 개발해본다.
연동이 얼마나 유연한지 느껴보고 다른 framework 적용시 참고한다.
정보
스프링 패키지 hibernate 의 sessionFactory 인스턴스를 생성하기위해
org.springframework.orm.hibernate3.LocalSessionFactoryBean 를 지원한다.
property name="dataSource" 는 아래와 같이 데이타베이스 연결을 위한 설정값을 넘겨주고
property name="mappingResources" 는 도메인모델과 테이블사의 매핑정보를 담은 hbm.xml 파일을 넘겨준다.
property name="hibernate.dialect" 는 매핑파일과 사용할 데이타베이스 정보를 정해주어야한다.
Dialect 는 사용하는 데이타베이스를 최적화해서 생성할수 있도록 해준다.
org.hibernate.dialect 패키지에 데이타베이스 마다 dialect 가 있다.
Dialect는 hibernate.dialect 프로퍼티를 사용하여 설정 한다.
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property> Oracle
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> MySQL
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> MS SQL
다른 데이타베이스 dialect 를 알아볼려면
http://www.hibernate.org/hib_docs/v3/api/ Hibernate API 가서 보자.
<!-- JDBC 연결하는 부분 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="maxIdle" value="1"/>
<property name="maxActive" value="5"/>
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url" value="jdbc:microsoft:sqlserver://ip:1433;DatabaseName=spring"/>
<property name="username" value="[user name]"/>
<property name="password" value="[user pwd]"/>
</bean>
<!-- Hibernate Framework Session Factory 등록 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>gon/front/board/model/TbBoard.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
문제해결
(1) xml 로딩중 에러났다. class 없어서 beanFactory 를 생성못했다는것이다.
보니 hibernate3.jar 가 없었다. 이런 멍~~, 얼른 추가하고 돌렸는데
http://www.hibernate.org/6.html hibernate-3.2.6.ga.zip
(2) dom4j-1.6.1 패키지가 없어서 에러난것이다.
hibernate-3.2.6.ga.zip 파일안에 lib 폴더에 보면 필요한 jar 가 다 있으니
다른데서 찾지 않아도 될거같다.
(3) <generator class="sequence"/> 포함하면 아래와 같은 에러가난다. 왜나는지는
정확하게 파악하지 못했다. 일단 삭제하고 진행했다.
hbm.xml 만 있고 맴핑할 모델객체가없어서 나는에러이다. 아래 그림과 같이 해주면
맴핑파일이 모델객체를 자동으로 생성해준다.
(4) net/sf/cglib/proxy/CallbackFilter 파일 추가 cglib-2.1.3.jar
(5) org/objectweb/asm/Type 파일추가 asm.jar, asm-attrs.jar
hibernate3 를 돌리기 위해 다음과 같은 jar 파일을 추가한것이된다.
dom4j-1.6.1, cglib-2.1.3, asm.jar, asm-attrs.jar
'자바(JAVA)' 카테고리의 다른 글
JSTL cannot be resolved error (1) | 2008.08.03 |
---|---|
제네릭(generic)을 통해 Java Collections 구현 (0) | 2008.08.02 |
smtp 서버이용 메일보내기 (0) | 2008.07.29 |
Hibernate 입력관련 에러 (0) | 2008.07.24 |
spring 에서 MS SQL JDBC 연동하기 (0) | 2008.07.19 |
전송받은 값이 한글이 깨질때 (0) | 2008.07.18 |
클래스 정보로 함수를 실행시키고 싶을때 (0) | 2008.07.18 |
Class 분석하기위한 속성값들 뽑아오는 방법 (0) | 2008.07.17 |