最近单位要用Camel。在学习过程中发现目前国内网上camel的相关资料比较少,能够运行起来的例子就更少,这个刚刚学习的同学们带来了很多不便,本着让同学们少走弯路的目的。发个Camel+MyBatis+Spring的小例子。在tomcat7下运行正常。这个例子展示了camel通过mybatis从数据库读取数据。相关更新,删除数据形式类似。
目录结构
代码GoodsMapper.java
package dao;
import java.util.List;
import model.GoodsEntity;
public interface GoodsMapper {
public List<GoodsEntity> getAll();
}
代码MybatisHandler.java
package Hanadler;
import java.util.List;
import model.GoodsEntity;
public class MybatisHandler {
public void getData(List<GoodsEntity> lst){
for (GoodsEntity goodsEntity : lst) {
System.out.println(goodsEntity.getGoodsName());
}
}
}
代码GoodsMapper.xml
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.GoodsMapper">
<resultMap type="model.GoodsEntity" id="ResultMap">
<result column="goodsId" property="goodsId" />
<result column="goodsName" property="goodsName" />
<result column="address" property="address" />
</resultMap>
<select id="getAll" resultMap="ResultMap" >
select * from goods
</select>
<!--
【1】
<select id="getAll" resultMap="ResultMap" parameterType="String">
select * from goods where goodsName = #{goodsName}
</select>
【2】
<select id="getAll" resultMap="ResultMap" parameterType="model.GoodsEntity">
select * from goods where goodsId = #{goodsId} and oodsName = #{goodsName}
</select>
-->
</mapper>
代码GoodsEntity.java
package model;
public class GoodsEntity {
private int goodsId;
private String goodsName;
private String address;
public int getGoodsId() {
return goodsId;
}
public void setGoodsId(int goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
代码MybatisRoute.java
package route;
import org.apache.camel.builder.RouteBuilder;
import Hanadler.MybatisHandler;
import model.GoodsEntity;
public class MybatisRoute extends RouteBuilder {
public void configure() throws Exception {
// //【2】
// GoodsEntity ge = new GoodsEntity();
// ge.setGoodsId(100);
// ge.setGoodsName("汽车");
//每隔60秒查询一次DB
from("timer://queryAward?period=60s")
// //【1】.传递1个参数
// .setBody(constant("汽车"))
// //【2】.传递多个参数
// .setBody(constant(ge))
.to("mybatis:getAll?statementType=SelectList")
.bean(MybatisHandler.class,"getData");
}
}
代码mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis