题
决定将我的一个项目从Ibatis转移到Mybatis,并遇到插入问题。
映射器XML:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="bap.persistance.interfaces.ArticleMapper">
<insert id="insertTestA">
insert into test_a ( cookie ) values( 'tomek pilot');
</insert>
</mapper>
映射器Java文件:
public interface ArticleMapper {
void insertTestA();
}
映射器实施:
String resource = "bap/persistance/MyBatis_xml/MyBatisConfig.xml";
....
...
public void createArticle( Article article ) throws IOException {
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlSessionFactory.openSession();
try{
ArticleMapper mapper = session.getMapper(ArticleMapper.class);
mapper.insertTestA();
} catch( Exception e ){
e.printStackTrace();
} finally{
session.close();
}
return article.getId();
}
...
... line omitted for brevity.
使用的表:
CREATE TABLE test_a
(
cookie text
)
WITH (OIDS=FALSE);
我正在尝试使用mybatis 3.0.1,Spring 3.0.3,PostgreSQL 8.3(使用PostgreSql-8.4-701.jdbc3.jar)
我相信所有样板设置均正确设置(我可以针对另一个表格执行选择。
我手动测试了插入器,它的工作正常( insert into test_a ( cookie ) values( 'some stuff');
)
由于某种原因,插入不会执行,也没有显示堆栈跟踪:-(
任何提示都将不胜感激:-)
解决方案
您没有进行交易。尝试添加“ session.commit()”。
不隶属于 StackOverflow