mybatis: использование интерфейсов mapper с конфигурацией XML для глобальных параметров
Мне нравится XML-нотация для указания глобальных параметров, таких как строки подключения. Мне также нравятся аннотации Mapper. Когда я пытаюсь объединить два, я получаю это исключение.
есть ли способ объединить эти два? Я хотел бы использовать XML-файл для глобальных конфигураций, но MyBatis учитывает интерфейсы картографа.
проблема в том, что SqlSessionFactoryBuilder().build () принимает либо читателя (который я хочу использовать для передачи XML config), или объект конфигурации (который я вижу, имеет addMappers()
метод, который может мне помочь) - но я не понимаю, как объединить два.
3 ответов
при создании маппер интерфейс с абстрактными методами, имеющими точную сигнатуру метода как sql в xml.
например. Это было пространство имен для 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.Дао.EntityMapperInterface
public interface EntityMapperInterface {
public List<Employee> selectEmployeeWithId(Long id);
Mybatis-config file
<mappers>
<mapper resource="com/mybatis/mappers/EntityMapper.xml" />
</mappers>
как вы называете это из действия класс / сервлет? Когда у вас инициализирован сеанс SqlSession,
EntityMapperInterface emi = session.getMapper(EntityMapperInterface.class);
List eList = emi.selectEmployeeWithId(1);
У меня была та же проблема и потому, что пространство имен в файле MyBatis mapper и пакет интерфейса mapper не совпадали.