刚接触IBATIS,希望大家能够帮忙看一下.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias type="flex.samples.spring.dao.DailyReportBean" alias="dailyreport"/>
<resultMap class="dailyreport" id="rltPrintMonthReport">
<result property="day" column="day"/>
<result property="starttime" column="starttime"/>
<result property="endtime" column="endtime"/>
<result property="worktime" column="worktime"/>
<result property="workcontent" column="workcontent"/>
<result property="department" column="department"/>
<result property="team" column="team"/>
<result property="confirm" column="confirm"/>
</resultMap>
<select id="selPrintMonthReport" resultMap="rltPrintMonthReport" parameterClass="dailyreport">
select ltrim(substr(report_date,7,2),0) day,
min(starttime) starttime,
max(endtime) endtime,
case
when min(starttime)<='12:00' and max(endtime)<='12:00'
then (to_date(max(endtime),'hh24:mi')-to_date(min(starttime),'hh24:mi'))*24
when (min(starttime)>='12:00' and min(starttime)<='13:00') and (max(endtime)>='12:00' and max(endtime)<='13:00')
then 0
when min(starttime)>='13:00' and max(endtime)>='13:00'
then (to_date(max(endtime),'hh24:mi')-to_date(min(starttime),'hh24:mi'))*24
when min(starttime)<='12:00' and (max(endtime)>='12:00' and max(endtime)<='13:00')
then (to_date('12:00','hh24:mi')-to_date(min(starttime),'hh24:mi'))*24
when min(starttime)<='12:00' and max(endtime)>='13:00'
then (to_date(max(endtime),'hh24:mi')-to_date(min(starttime),'hh24:mi'))*24-1
when (min(starttime)>='12:00' and min(starttime)<='13:00') and max(endtime)>='13:00'
then (to_date(max(endtime),'hh24:mi')-to_date('13:00','hh24:mi'))*24
end worktime,
report_date,substr(max(sys_connect_by_path(workcontent,',')),2) workcontent,
max(department) department,
max(team) team,
max(confirm) confirm
from (select dailyreport.*,row_number() over(partition by report_date order by workcontent) rn from dailyreport)
where login_id=#loginid# and substr(report_date,0,6)=#reportdate#
group by report_date
start with rn=1
connect by rn-1=prior rn and report_date=prior report_date
</select>
</sqlMap>
问题:
如粗体红色部分所示,IBATIS中这样写报错.在网上查了一下,除等于外一般用动态SQL这种写法<isGreaterThan prepend=" and " property="??" compareValue="???">
问题是我的写在CASE WHEN 语句中,应该怎么样修改....迷茫中...等待大好人....
相关推荐
### ibatis SQL语句编写详解 #### 一、引言 在软件开发过程中,数据库操作是必不可少的一部分。Ibatis(现称为MyBatis)作为一款优秀的持久层框架,提供了非常灵活的方式来处理SQL语句,使得Java开发者能够更加...
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
标题与描述概述的知识点主要集中在iBATIS框架的SQL映射技术上,特别是针对不同类型的输入参数如何在iBATIS中构建SQL语句。以下是对这些知识点的详细展开: ### iBATIS SQL映射技术概览 iBATIS是早期流行的Java持久...
在使用iBatis(现为MyBatis)作为持久层框架进行开发时,有时我们需要调试SQL语句,以便查看执行的SQL、优化性能或者解决查询问题。本文将详细讲解如何在iBatis日志信息中打印SQL语句,以便更好地理解和优化数据库...
通过对ibatis框架下SQL语句中特殊字符处理方法的详细分析,我们可以看到,合理地使用字符串转义处理结合动态SQL标签,可以有效地解决特殊字符带来的问题。这样不仅可以保证查询的准确性,还可以提高代码的健壮性和...
- `<isGreaterEqual>`:用于判断一个值是否大于等于另一个值,如果是则执行相应的SQL语句。 - `<isLessThan>`:用于判断一个值是否小于另一个值,如果是则执行相应的SQL语句。 - `<isLessEqual>`:用于判断一个值...
根据给定的文件信息,以下是对“Ibatis常用SQL语句”的详细解析,涵盖了一系列Ibatis在数据操作中的应用实例。 ### Ibatis简介 Ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。Ibatis可以让...
iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...
在部署到 WAS 服务器上的 CMSII 系统中,ibatis 的 sql 语句不能输出日志的问题。解决该问题需要改变 WAS 的默认 LogFactory 实现类,使其使用 log4j 框架下的 LogFactory 实现类。 问题描述: 在本机 TOMCAT ...
Ibatis,作为一个轻量级的持久层框架,与传统的ORM(对象关系映射)工具相比,提供了更为灵活的SQL映射机制,使得开发者可以直接编写SQL语句,从而更好地掌控数据库查询性能。 该SQL生成器被设计成Web应用的形式,...
2. 需要手动管理SQL语句,可能会引发SQL注入问题。 3. 与ORM框架相比,iBATIS的功能相对较少,例如缺少实体类的自动映射。 总的来说,iBATIS SQL Maps为Java开发提供了一种有效的数据库访问方案,通过学习和掌握其...
根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...
通过这样的配置,每次Ibatis执行SQL时,你可以在控制台看到详细的SQL语句,包括参数信息,这对于排查SQL问题非常有帮助。同时,如果你希望将日志输出到文件,可以添加一个FileAppender到配置中。 总结起来,本文...
iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的、独立的片段,然后根据不同的条件组合这些片段生成最终的SQL语句。这可以提高代码的可重用性和灵活性。 例如,在上面的代码中,我们定义了三个动态SQL片段...
在SQL语句中,使用问号(`?`)作为参数占位符是一种常见的做法,尤其是在编程语言如Java中与数据库交互时。这种方式被称为预编译语句或参数化查询,它具有重要的安全性和性能优势。 ### SQL参数化查询的概念 参数化...
根据提供的文件信息,本文将对ibatis常用的SQL语句进行详细的解析与说明。这些SQL语句主要用于Oracle数据库中,涉及到了删除、插入以及查询等基本操作,并且在ibatis框架中实现了参数化处理。 ### 一、删除操作 ...
5. **动态SQL**:讲解如何使用iBATIS的动态元素来构建灵活的SQL语句,以应对复杂的查询需求。 6. **API使用**:介绍SqlSession、SqlSessionFactory、Executor等关键接口和类的使用方法。 7. **缓存机制**:解释...