Please Enable JavaScript!
Gon[ Enable JavaScript ]

spring 과 hibernate 연결

자바(JAVA)
반응형

목적
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

반응형
Posted by 녹두장군1
,