HSQLDB を使用するように修正します。
HSQLDB は Java で実装された RDB で、ほかの RDB 同様サーバを起動して外部プロクラムから接続して使用するほか、JDBC ドライバだけで使用することも可能です。
JDBC ドライバから直接データベースエンジンが呼び出されるので、別途サーバを起動する必要がありません。
HSQLDB をサーバモードで起動し、クライアントからはネットワーク経由で接続します。
DB に登録したログインID、パスワードを入力してログインボタンをクリックし、
xxx さんこんにちは。と表示されれば OK です。
プロジェクトの最新版はこちらで公開しています。
https://github.com/matsushima-terunao/blog_java/
→ 1-6. 認証機能追加
← 1-5. Spring MVC 3 + Hibernate 4 + MySQL
↑ 一覧
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
↑ 一覧
0 件のコメント:
コメントを投稿