質問

私のプロジェクトの1つをIbatisからMybatisに移動し、INSERTの問題に遭遇することにしました。

マッパー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>

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を使用)

すべてのボイラープレートのセットアップが適切にセットアップされていると思います(別のテーブルの罰金に対して選択を実行できます。

私はinserを手動でテストしましたが、それは正常に動作します( insert into test_a ( cookie ) values( 'some stuff'); )

何らかの理由で、挿入物は実行されず、スタックトレースが表示されません:-(

ヒントは最も高く評価されます:-)

役に立ちましたか?

解決

あなたはあなたの取引をコミットしませんでした。 「session.commit()」を追加してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top