おはようございます、
昨日初めてMyBatisを使いました。出発点として、Loiane Gronerの例を使用しました。そして、mysql db を内部 hsqldb (v1.8) に置き換えようとしました。すべてを変更しましたが、挿入単体テストが期待どおりに機能しませんでした。以下を参照してください。まず必要なすべての部品。
<insert id="insert" parameterType="Contact">
INSERT INTO CONTACT ( CONTACT_EMAIL, CONTACT_NAME, CONTACT_PHONE )
VALUES ( #{email}, #{name}, #{phone} );
</insert>
public void insert(Contact contact){
SqlSession session = sqlSessionFactory.openSession();
try {
session.insert("Contact.insert", contact);
session.commit();
} finally {
session.close();
}
}
@Test
public void testInsert() {
Contact actual = new Contact();
actual.setName("Adam");
actual.setPhone("+001 811 23456");
actual.setEmail("anonym@gmail.com");
contactDAO.insert( actual );
assertEquals(1, contactDAO.selectAll().size() );
}
select メソッドを使用して、前に挿入した連絡先を取得するため、このテストはパスします。しかし、hsqldb を開くと、連絡先 ( entry ) がありません。実際には、このテストは 1 回しか合格しないと予想されます。もう一度呼び出すと、複数のエントリが存在するはずです。しかし、これは起こりません。なぜ、連絡先を永久にとどまらないのですか?(クリーンアップ方法はありません)