<div class="note"> Appfues의 디폴트 데이터베이스는 PostgreSQL이다. MySQL을 사용하기 위해서는 몇가지 사항을 변경해주어야 한다. 그 사항을 다루기 위한 글이다.

여기서 사용된 Appfuse-light는 appfuse-light-spring-ibatis-1.8-beta 이다. </div>

build.xml파일 수정#

다음처럼 테이블 생성 sql문을 create-mysql.sql으로 변경한다.

    <target name="createdb" description="Create database tables">
    <echo message="${jdbc.driverClassName}"/>
    <echo message="${jdbc.url}"/>
    <echo message="${jdbc.username}"/>
    <echo message="${jdbc.password}"/>
        <sql driver="${jdbc.driverClassName}" url="${jdbc.url}"
            userid="${jdbc.username}" password="${jdbc.password}">
            <fileset dir="${basedir}">
    <!--
                <include name="src/**/create-postgresql.sql"/>
    -->
    <include name="src/**/create-mysql.sql"/>
            </fileset>
            <classpath refid="compile.classpath"/>
      <classpath>
        <pathelement location="${basedir}/lib/mysql-connector-java-5.0.3-bin.jar" />
      </classpath>
        </sql>
    </target>

테이블 생성 SQL문 수정#

src\main\java\org\appfuse\dao\ibatis 밑의 create-postgresql.sql 파일을 create-mysql.sql 이라고 복사해서 이름을 변경한다. 내용을 다음처럼 변경한다.

drop table IF EXISTS app_user;
drop table IF EXISTS app_user_sequence;

create table app_user (id bigint not null primary key, first_name varchar(50), last_name varchar(50), birthday timestamp);
create table app_user_sequence (id int not nulltype=MYISAM;
insert into app_user_sequence values(0);

Incrementer 구현체 변경#

applicationContext-ibatis.xml 파일에서 다음처럼 Incrementer 구현체를 PostgreSQLSequenceMaxValueIncrementer 에서 MySQLMaxValueIncrementer로 변경한다.

<!-- 
<bean id="userIncrementer" class="org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer">
    <property name="dataSource" ref="dataSource"/>
    <property name="incrementerName" value="user_sequence"/>        
</bean>
-->    
<bean id="userIncrementer" class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer">
    <property name="dataSource" ref="dataSource"/>
    <property name="incrementerName" value=""app_user_sequence""/>
    <property name="columnName" value="id" />
</bean>

여기서 주의할것은 incrementerName의 값은 sequence용 테이블의 이름이어야 한다는 것이다. 앞서 create table app_user_sequence (id int not null) type=MYISAM; 라는 sql문을 사용해서 sequence용 테이블을 생성했으니 테이블명이 다르다면 해당 테이블명으로 채워야 한다.

pom.xml 파일 수정#

MySQL 용 JDBC드라이버를 다운로드하도록 다음과 같은 항목을 적절한 곳에 추가한다. postgresql 항목 뒤에 추가하는게 좋을듯 하다. 그리고 버전값은 http://dev.mysql.com/downloads/connector/j/5.0.html 에서 확인해서 최신버전값으로 바꾸면 될듯 하다. 2007년 8월 7일 현재는 5.0.7이 최신버전이다.

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.0.7</version>
</dependency>

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-7) was last changed on 07-Aug-2007 15:47 by DongGukLee