Postanowiłem przenieść jeden z moich projektów z iBatis do MyBatis i napotkałem problem z insertem.
mapper 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>
plik java mappera:
public interface ArticleMapper {
void insertTestA();
}
implementacja mappera:
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.
używana tabela:
CREATE TABLE test_a
(
cookie text
)
WITH (OIDS=FALSE);
Próbuję uruchomić to z mybatis 3.0.1, wiosna 3.0.3, postgresql 8.3 (przy użyciu postgresql-8.4-701.jdbc3.jar)
Wierzę, że wszystkie ustawienia na płycie głównej są ustawione poprawnie (mogę wykonać selekcję przeciwko innej tabeli grzywny.
Testowałem wkładkę ręcznie i działa dobrze ( insert into test_a ( cookie ) values( "some stuff");
)
Z jakiegoś powodu wstawka nie zostanie wykonana i nie pojawi się ślad stosu :-(
Wszelkie wskazówki będą najbardziej cenione :-)
Odpowiedzi:
14 dla odpowiedzi № 1Nie dokonałeś transakcji. Spróbuj dodać "session.commit ()".