ibatis 查询时的问题,精通的请进来

ass7117 2012-03-07 10:57:39
1.我先用生成的此语句执行后得出3列字段中的数据。
SELECT POLNO,CERTNO,POL_PRT_CODE FROM AUD_JH_POL_MAIN WHERE (APP_DATE < TO_DATE('2011-01-01','YYYY-MM-DD') AND EFF_DATE < TO_DATE('2011-01-31','YYYY-MM-DD'))

2.但是在生成下面语句在执行时,后面两个字段没有值,值显示之前查询的3个语句。我拿到数据库中单独执行,是5列都有数据的
SELECT POLNO,CERTNO,POL_PRT_CODE,PRPL_NO,PRPL_PRT_CODE FROM AUD_JH_POL_MAIN WHERE (APP_DATE < TO_DATE('2011-01-01','YYYY-MM-DD') AND EFF_DATE < TO_DATE('2011-01-31','YYYY-MM-DD'))

sql是我生成的sql语句为参数用##传参不能执行,只能用$$执行,但是会出现上面的问题。请帮忙!!!

<select id="getPartTableCols" resultClass="java.util.HashMap" parameterClass="string">
<![CDATA[
$sql$
]]>
</select>
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ass7117 2012-03-07
  • 打赏
  • 举报
回复
谁能救救我啊!!!!
ass7117 2012-03-07
  • 打赏
  • 举报
回复
我加上了remapResults="true但是有问题

但是我这填上了 又出现个解析错误
Cause: org.xml.sax.SAXException: Error: URI=null Line=214: Attribute "remapResults" must be declared for element type "select".
licip 2012-03-07
  • 打赏
  • 举报
回复
resultClass="java.util.HashMap"
这说明你返回的值是key value对的形式,那key是不能重复的。会不会是你有重复的数据呢。
a3737500 2012-03-07
  • 打赏
  • 举报
回复
表结构是啥样的
candiceChan7 2012-03-07
  • 打赏
  • 举报
回复
话说你能搞个bean类么?返回hashmap的话。由于hashmap的特性。有可能有部分值会取不到,你弄个bean类,然后把语句写在xml文件里面,然后的对象为bean类吧,这样也规范些!!
安特矮油 2012-03-07
  • 打赏
  • 举报
回复
一下是我常用的ibatis的配置,你看看吧,希望对你有用

<sqlMap namespace="logger">
<!-- bean配置 -->
<typeAlias alias="LoginQueryLogger" type="com.cs.web.bean.LoginQueryLogger"/>
<typeAlias alias="LoginLogger" type="com.cs.web.bean.LoginLogger"/>
<typeAlias alias="TasksLogger" type="com.cs.web.bean.TasksLogger"/>

<!-- 任务申请日志 -->
<resultMap class="TasksLogger" id="TasksLoggerList" groupBy="loginId">
<result property="loginId" column="login_id" />
<result property="taskNo" column="task_no" />
<result property="taskName" column="task_name" />
<result property="doType" column="type" />
<result property="resNo" column="res_no" />
<result property="applyTime" column="apply_time" />
<result property="startTime" column="start_time" />
<result property="endTime" column="end_time" />
<result property="letupTime" column="letup_time" />
</resultMap>
<!-- 用户登陆日志 -->
<resultMap class="LoginLogger" id="LoginLoggerList" groupBy="loginId">
<result property="loginId" column="login_id" />
<result property="userName" column="user_name" />
<result property="ip" column="ip" />
<result property="loginState" column="login_state" />
<result property="date" column="date" />
<result property="tasksLogger" resultMap="logger.TasksLoggerList"/>
</resultMap>

<!-- 查询所有的日志记录 -->
<select id="findAllLogger" resultMap="logger.LoginLoggerList">
SELECT a.login_id as loginId,
a.user_name as userName,
a.ip as ip,
a.login_state as loginState,
a.date as date,
b.task_no as taskNo,
b.task_name as taskName,
b.type as doType,
b.res_no as resNo,
b.apply_time as applyTime,
b.submit_time as submitTime,
b.start_time as startTime,
b.end_time as endTime,
b.letup_time as letupTime
FROM T_LOGIN_LOGGER a
LEFT OUTER JOIN T_TASKS_LOGGER b ON a.login_id = b.login_id
</select>

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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