HSQLDB を使用するように修正します。

HSQLDB は Java で実装された RDB で、ほかの RDB 同様サーバを起動して外部プロクラムから接続して使用するほか、JDBC ドライバだけで使用することも可能です。

■In-Process Access to Database Catalogs


JDBC ドライバから直接データベースエンジンが呼び出されるので、別途サーバを起動する必要がありません。
file
 指定されたパスにファイルとして保存します。
 接続文字列の例: jdbc:hsqldb:file:/opt/db/testdb
mem
 メモリ内にデータを保持します。アプリケーションを終了するとデータは破棄されます。
 接続文字列の例: jdbc:hsqldb:mem:mymemdb
res
 指定された Java パスの Java リソースを読み取り専用で使用します。
 接続文字列の例: jdbc:hsqldb:res:org.my.path.resdb
ファイルモードの使用例:
クライアントツールから接続(HSQL Database Manager の例):
    HSQL Database Manager を起動
        java -cp hsqldb-2.3.1.jar org.hsqldb.util.DatabaseManager
    接続先
        Type: HSQL Database Engine Standalone
        Driver: org.hsqldb.jdbcDriver
        URL: jdbc:hsqldb:file:testdb
        User: SA
        Password:
クライアントプログラムから接続:
    Class.forName("org.hsqldb.jdbcDriver");
    Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "sa", "");

■Server Modes


HSQLDB をサーバモードで起動し、クライアントからはネットワーク経由で接続します。
Server
 HSQLDB をサーバモードで起動し、クライアントからはネットワーク経由で接続します。
Web Server
 HSQLDB を Web サーバモードで起動し、クライアントからはネットワーク経由で HTTP で接続します。
Servlet
 HSQLDB を Tomcat などにサーブレットとして配置し、クライアントからはネットワーク経由で HTTP で接続します。
サーバモードの使用例:
サーバ起動:
    java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
クライアントツールから接続(HSQL Database Manager の例):
    HSQL Database Manager を起動
        java -cp hsqldb-2.3.1.jar org.hsqldb.util.DatabaseManager
    接続先
        Type: HSQL Database Engine Server
        Driver: org.hsqldb.jdbcDriver
        URL: jdbc:hsqldb:hsql://localhost/
        User: SA
        Password:
クライアントプログラムから接続:
    Class.forName("org.hsqldb.jdbcDriver");
    Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "sa", "");

■テスト

サーバモード
 HSQLDB のサイト http://hsqldb.org/ から HSQLDB をダウンロード
 hsqldb-2.3.1.jar を展開
 サーバの起動
  java -cp hsqldb-2.3.1.jar org.hsqldb.Server
 HSQL Database Manager を起動
  java -cp hsqldb-2.3.1.jar org.hsqldb.util.DatabaseManager
 Connect
  Type: HSQL Database Engine Server
  URL: jdbc:hsqldb:hsql://localhost/
 テーブルの作成
  create table test_table (
  id integer,
  name varchar(100)
  )
  Execute
 データの追加
  insert into test_table values (
  1,
  'matsushima'
  )
  Execute
 データの表示
  select * from test_table
  Execute
 サーバの終了
  shutdown
  Execute
スタンドアロンモード(CSV ファイルに保存)
 HSQL Database Manager を起動
  java -cp hsqldb-2.3.1.jar org.hsqldb.util.DatabaseManager
 Connect
  Type: HSQL Database Engine Standalone
  URL: jdbc:hsqldb:file:C:\USR\SRC\TEST\java\data\data
 テーブルの作成
  create text table user_mst (
  id integer generated by default as identity (start with 1),
  loginid varchar(255),
  password varchar(255),
  name varchar(255),
  primary key (id));
  Execute
 CSV に保存を指定
  set table user_mst source 'user_mst.csv;encoding=UTF-8';
  Execute
 データの追加
  insert into user_mst (
  loginid,
  password,
  name
  ) values (
  'matsushima',
  'aaa',
  '松島'
  )
  Execute
 データの表示
  select * from user_mst
  Execute
 データの表示
  shutdown
  Execute

■上記で作成した CSV データを使用するように修正します。

pom.xml にライブラリを追加
    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>2.3.1</version>
    </dependency>
applicationContext.xml の DB 接続設定を修正
 dataSource bean の JDBC ドライバの設定を修正します。
 また、起動時に SQL を実行するように指定します。
  <!-- DB 接続設定。 -->
  <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:3306/test" />
    <property name="username" value="root" />
    <property name="password" value="root" /> -->
    <property name="driverClassName" value="org.hsqldb.jdbc.JDBCDriver" />
    <property name="url" value="jdbc:hsqldb:file:C:\usr\src\test\java\data\data;shutdown=true" />
    <property name="username" value="sa" />
    <property name="password" value="" />
  </bean>
  <jdbc:initialize-database data-source="dataSource" ignore-failures="DROPS">
    <jdbc:script location="classpath:/setup.sql" />
  </jdbc:initialize-database>
起動時に実行する SQL の追加
 src/main/resources 配下に setup.sql の名前で追加します。
drop table user_mst if exists;
create text table user_mst (
id integer generated by default as identity (start with 1),
loginid varchar(255),
password varchar(255),
name varchar(255),
primary key (id));
set table user_mst source 'user_mst.csv;encoding=UTF-8';
サーバを起動し、ブラウザから http://localhost:8080/spring-test/login にアクセスします。
DB に登録したログインID、パスワードを入力してログインボタンをクリックし、
xxx さんこんにちは。と表示されれば OK です。

プロジェクトの最新版はこちらで公開しています。
https://github.com/matsushima-terunao/blog_java/

→ 1-6. 認証機能追加
← 1-5. Spring MVC 3 + Hibernate 4 + MySQL
↑ 一覧