Parameters 如何将参数传递给Camel中的myBatis组件?
如何为myBatis组件提供所需的查询参数?我想用selection by id执行一个简单的Select语句。最好的解决方案是直接从Cxf负载自动提取参数 我没有为myBatis映射使用任何域类。 使用getAll方法时,Route工作正常 到目前为止,我的路线如下所示:Parameters 如何将参数传递给Camel中的myBatis组件?,parameters,cxf,apache-camel,mybatis,ibatis,Parameters,Cxf,Apache Camel,Mybatis,Ibatis,如何为myBatis组件提供所需的查询参数?我想用selection by id执行一个简单的Select语句。最好的解决方案是直接从Cxf负载自动提取参数 我没有为myBatis映射使用任何域类。 使用getAll方法时,Route工作正常 到目前为止,我的路线如下所示: @Override public void configure() throws Exception { from(cxfEndpoint).to("mybatis:getById?statementType=Sel
@Override
public void configure() throws Exception {
from(cxfEndpoint).to("mybatis:getById?statementType=SelectList")
});
和我的映射器配置:
<?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="User">
<select id="getAll" resultType="map">
SELECT * FROM USERS
</select>
<select id="getById" parameterType="int" resultType="map">
SELECT * FROM USERS WHERE ID = #{id}
</select>
</mapper>
你应该用Id本身填充你的身体。它可以是Integer类型的对象:
from(cxfEndpoint).setBody(Integer.valueOf(123)).to("mybatis:getById?statementType=SelectList")
其中123是您的Ide。您应该用Id本身填充您的身体。它可以是Integer类型的对象:
from(cxfEndpoint).setBody(Integer.valueOf(123)).to("mybatis:getById?statementType=SelectList")
其中123是您的Ide。您可以设置一个标头,并使用inputhreader参数将其传递给mybatis 例如:
from(cxfEndpoint)
.setHeader("myHeader").simple("some value")
.to("mybatis:getById?statementType=SelectList?inputHeader=myHeader")
您可以使用inputHeader参数设置标头并将其传递给mybatis 例如:
from(cxfEndpoint)
.setHeader("myHeader").simple("some value")
.to("mybatis:getById?statementType=SelectList?inputHeader=myHeader")
我理解交换主体的方式必须是一个带有getId方法的对象。myBatis组件将使用返回值填充命名参数。@Ralf,如果不创建专用对象,就没有办法做到这一点?至少文档中没有提到能够使用exchange标头或存储为exchange属性的对象。我理解exchange主体的方式必须是具有getId方法的对象。myBatis组件将使用返回值填充命名参数。@Ralf,如果不创建专用对象,没有任何方法可以做到这一点?至少文档中没有提到能够使用exchange标头或存储为exchange属性的对象。谢谢,这不再是2014年的事了,但可能会有所帮助:谢谢,现在已经不是2014年了,但可能会有所帮助: