Я пытаюсь создать небольшой инструмент CRUD, и до сих пор все аспекты (интерфейс Rich Faces UI и управляемые компоненты, валидация, база данных mySQL и т. Д.) отлично, но не кусок myBatis.MyBatis mapper для вызова PROC с несколькими параметрами IN
Я относительно новым для myBatis и храню руководство пользователей и API под рукой, но есть еще некоторые вещи, которые просто не придут вместе для меня, и один любой вызов процедуры с участием несколько параметров IN. Вот пример:
Это из БД настроить скрипты:
create procedure MY_FOO_PROC (IN valA VARCHAR(15), IN valB CHAR(1))
begin
select blah from blah where blah = valA and blah = valB etc.;
end
Это из MyMapper.java:
public interface MyMapper {
List<MyFooClass> getProgress (
@Param("valA") String valueA, @Param("valB") String valueB);
}
Это из MyMapper.xml:
<select id="getProgress" parameterType="map"
resultMap="MyFooMap" statementType="CALLABLE">
{ call MY_FOO_PROC (
#{valA, mode=IN, jdbcType=VARCHAR}
#{valB, mode=IN, jdbcType=CHAR}
)}
</select>
И, наконец, это из моего класса DAO:
public static List<MyFooClass>
doGetProgress (String valueA, String valueB) {
SqlSession session = MyBatisConnectionFactory.getInstance().getSqlSessionFactory().openSession();
EsparMapper mapper = session.getMapper(MyMapper.class);
List<MyFooClass> listFoo = mapper.getProgress(valueA, valueB); // line which originates exception below
session.close();
return listFoo;
}
Результат:
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect number of arguments for PROCEDURE dbname.MY_FOO_PROC; expected 2, got 1
### The error may involve my.package.names.getProgress-Inline
### The error occurred while setting parameters
Замечу, что я также пытался:
- создания POJO с переменными Вала и valB и геттеры/сеттеры для каждого,
- решений
parameterType="PojoClass"
в XML, - , пропуская
session.getMapper()
и создав экземпляр PojoClass, - и вызов
session.selectList("getProgress", pojoInstance);
с почти одинаковым результатом (т.е. неправильное количество аргументов).
Очень мало помогает в сетевом поиске, и большинство из вас говорит, что я делаю то, что, как я думаю, уже сделал.
Простые ошибки, подобные этому, являются самыми расстраивающими. Спасибо и с Рождеством! – cobaltduck