2009. 1. 15. 20:22

간만에 스프링 이야기 한번 해볼까요 ?

스프링 SQLErrorCode 관련 하여 소스를 보면;;;
public class SQLErrorCodes {

    private String[] databaseProductNames;

public void setDatabaseProductName(String databaseProductName) {
        this.databaseProductNames = new String[] {databaseProductName};
    }

    public void setDatabaseProductNames(String[] databaseProductNames) {
        this.databaseProductNames = databaseProductNames;
    }

========================================
sql-error-codes.xml

<bean id="DB2" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductName">
            <value>DB2*</value>
        </property>

<bean id="Derby" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductName">
            <value>Apache Derby</value>
        </property>

<bean id="Sybase" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductNames">
            <list>
                <value>Sybase SQL Server</value>
                <value>Adaptive Server Enterprise</value>
                <value>sql server</value> <!-- name as returned by jTDS driver -->
            </list>
        </property>

기타등등...........
이런 부분이 있습니다..
databaseProductName은 String[] 타입인데요..
저기 위에 보면 DB2는 특이 하게 디비 이름이 DB2* 라고 되어 있습니다.
밑에 Derby 같은 경우는 Apache Derby 이렇게 되어 있구요..

왜 DB2만 DB2* 라고 되어 있을까요 ?
물론 어떻게 보면 DB2* 이면 모든 버전 ? 이렇게 생각할 수도 있겠는데요..
저는 다른 이유로 저렇게 했다고 생각하는데 ;;; 어떻게들 생각하시나요 ?

스프링 DI의 기본 정도 될듯하네요;;; ㅡㅡ; 아닐수도 있구요;;ㅋ