インメモリDB:単体テストの「setUp()」でスキーマを作成します。Netbeans (6.5.1) Hibernate (3) Junit(3)、HSQL (1.8)
質問
Netbeans 6.5.1 を使用して Junit (3) 'setUp()' 内で Hibernate の 'hbm2ddl' ツールを使用してインメモリ DB をセットアップし、スキーマを自動的に構築するために必要な手順は何ですか?Hibernate アノテーションは使用していません。マッピング ファイルだけを使用しています。
実際のコードでは、もちろんディスク上のデータベースを使用したいと思います。[これは Junits が別個の「テスト」パッケージをライブで提供することです]
したがって、これはそこに到達していると思います:
- Netbeans 6.5.1 で標準 Java プロジェクトを作成し、Hiberate ライブラリに追加します。
- POJO、hibernate.cfg、および Hibernate マッピング ファイルを作成します。
- cfg ファイルとマッピング ファイルをテスト パッケージにコピーします。
設定方法はこんな感じです。
protected void setUp() throws Exception {
Configuration config = new Configuration();
config.configure();
SchemaExport exporter;
exporter=new SchemaExport(config);
exporter.create(true, true);
}
解決
- Netbeans 6.5.1 で標準 Java プロジェクトを作成し、Hiberate ライブラリに追加します。
- POJO、hibernate.cfg、および Hibernate マッピング ファイルを作成します。
- cfg ファイルとマッピング ファイルをテスト パッケージにコピーします。
テストケースの概要は次のようになります。
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
...
public class DatabaseTest extends TestCase {
private static Configuration config;
private static SessionFactory sessionFactory;
private static Session session;
...
@Override
protected void setUp() throws Exception {
config = new Configuration();
config.configure();
SchemaExport exporter;
exporter=new SchemaExport(config);
exporter.create(true, true);
sessionFactory = config.buildSessionFactory();
session=sessionFactory.openSession();
}
...
@Override
protected void tearDown() throws Exception {
session.close();
}
所属していません StackOverflow