jdbc的preparestatement+动态sql,要如何迁移到ibatis里面

whatisit 2009-01-05 08:51:45
已知sql语句select id from table where column1=?,column2=?.....(可能包含orderby,联合,子查询等等),以及每个?对应的值,按顺序存在List<Object> values中,原应用使用jdbc的preparestatement实现的,现在要放到ibatis里面,因为sql语句构建不受控,因此不要想把它变成静态的map配置,
现在sqlmap里面我是这样写的
<select id="abatorgenerated_selectByExample" resultClass="java.util.HashMap" parameterClass="com.soulda.dms.osworkflow.spi.ibatis.dbobject.SpecialExample" >
$sql$
</select>
要如何写才能把values中的值apply到sql中?
...全文
136 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fulianglove 2009-01-05
  • 打赏
  • 举报
回复
这个你只能自己吧List里的值按顺序填充到一个SpecialExample实例中去了,这个顺序只有你自己知道
hbwhwang 2009-01-05
  • 打赏
  • 举报
回复
提供一个思路
1、先用JAVA把SQL(带?的)拼凑好
2、然后以?为分割符号,split这个SQL语句
3、定义一个类,包括2个属性:SQL片段和VALUE
4、用分割出来的一个SQL片段和一个参数创建上面的类的对象,把这些对象放到List中
5、在ibatis中用<iterate>遍历这个List

比如:
select id,name from table1 where id>? and name like ? order by id
切割为3个对象
zou_wei_forever 2009-01-05
  • 打赏
  • 举报
回复
up一下

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧