在上一篇文章里介绍了JPetStore Demo示例的开发调试方面的改进,本文接着介绍数据库连接方面。该工程最初版本使用了HyperSQL数据库。它是一种小型、快速的多线程和事务数据库引擎,并支持嵌入式和服务器模式。若支持MySQL类型数据库,在工程中需要修改两处。

    首先,修改applicationContext.xml文件,注掉hsqldb dataSource并添加mysql dataSource,其具体内容如下:
 <!-- in-memory database and a datasource -->
    <!--
    <jdbc:embedded-database id="dataSource">
        <jdbc:script location="classpath:database/jpetstore-hsqldb-schema.sql"/>
        <jdbc:script location="classpath:database/jpetstore-hsqldb-dataload.sql"/>
    </jdbc:embedded-database>
    -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost/jpetstore?createDatabaseIfNotExist=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf-8&amp;amp;autoReconnect=true"/>
        <property name="username" value="j2ee"/>
        <property name="password" value="mypassword"/>
        <property name="maxActive" value="100"/>
        <property name="maxWait" value="1000"/>
        <property name="poolPreparedStatements" value="true"/>
        <property name="defaultAutoCommit" value="true"/>
    </bean>
 
    其次,需要手动创建上述的mysql数据库连接用户并授权,接着用src/main/resources/database下的sql语句去创建数据库表和初始化数据。

    在Eclipse环境里,运行PetStoreJettyServer类,其结果如下: