早上好,
昨天我第一次使用MyBatis。作为起点,我使用了Loiane Groner的示例。我试图用内部 hsqldb (v1.8) 替换 mysql db。我改变了一切,但我从来没有让插入单元测试按预期工作。见下文,首先是所有必要的部分。
<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 )。我真的希望,这个测试只会通过一次。如果我第二次调用它,应该有不止一个条目。但这不会发生。为什么,不保持永久联系?(没有清理方法)