MyBatis:グローバルパラメーターにXML Configを使用してMapperインターフェイスを使用する
質問
接続文字列などのグローバルパラメーターを指定するためのXML表記が好きです。私もマッパーアノテーションが好きです。 2つを組み合わせようとすると、 この例外.
2つを組み合わせる方法はありますか?グローバル構成にXMLファイルを使用したいのですが、MyBatisにマッパーインターフェイスを考慮してもらいたいと思います。
問題は、sqlSessionFactoryBuilder()。build()が読者(XML構成を渡すために使用する)または構成オブジェクト(私が見ることがあると思う)を取得することです。 addMappers()
私を助けることができる方法) - しかし、私は2つを組み合わせる方法を理解していません。
解決
factory.getConfiguration().addMapper(...);
他のヒント
あなたが作成するとき マッパーインターフェイス XMLのSQLとして正確なメソッドの署名を持つ抽象メソッドの場合。
例えば。これは、実際のクエリを含むDAO.XMLの名前空間でした。
<mapper namespace=" com.mybatis.dao.EntityMapperInterface">
<select id="selectEmployeeWithId" parameterType="Long"
resultType="com.mybatis.domain.Employee">
select id,name from employee where 1=1
<if test="_parameter != null">
AND id=#{id}
</if>
order by id
</select>
でマッピングされます インターフェイスcom.mybatis.dao.entitymapperinterface
public interface EntityMapperInterface {
public List<Employee> selectEmployeeWithId(Long id);
mybatis-configファイル
<mappers>
<mapper resource="com/mybatis/mappers/EntityMapper.xml" />
</mappers>
アクションクラス/サーブレットからどのように呼びますか? uがsqlsessionを初期化したとき、
EntityMapperInterface emi = session.getMapper(EntityMapperInterface.class);
List eList = emi.selectEmployeeWithId(1);
私は同じ問題を抱えていましたが、MyBatis Mapperファイルの名前スペースとMapperインターフェイスのパッケージが一致していなかったためです。
所属していません StackOverflow