【发布时间】:2011-06-23 08:29:23
【问题描述】:
早上好,
昨天我第一次使用MyBatis。作为起点,我使用了来自Loiane Groner 的example。我试图用内部 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 )。 我真的希望,这个测试只会通过一次。如果我第二次调用它,应该有不止一个条目。但这不会发生。为什么,不保持永久联系? (没有清理方法)
【问题讨论】:
标签: java insert hsqldb mybatis