ibatis 2.0 1:1 sql 問題

问题描述

<sqlMap> <typeAlias alias="emp" type="com.resunly.ibatis.Emp"/> <resultMap id="empMAPResult" class="emp"> <result property="id" column="id" /> <result property="empName" column="empname"/> <result property="empAddr" column="empaddr"/> <result property="empSex" column="empsex"/> <result property="departName" column="depart.depname"/> <result property="des" column="depart.des"/> </resultMap> <select id="getEmp" parameterClass="java.lang.String" resultMap="empMAPResult" > <![CDATA[ select a.empName as empName, a.empAddr as empAddr, a.empSex as empSex, b.depName as departName, b.des as des from emp a, depart as b where a.departNo=b.depNo ]]> </select></sqlMap> 老被提示ORA-00933: SQL command not properly ended 不真的是哪裡的錯誤,幫忙看下 问题补充:<div class="quote_title">yanq12 写道</div><div class="quote_div"><div class="quote_title">引用</div><div class="quote_div">select a.empName as empName,&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.empAddr as empAddr,&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.empSex as empSex,&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.depName as departName,&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.des as des&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from emp a, depart as b where a.departNo=b.depNo&nbsp;&nbsp; </div><br /><br />depart as b 错在这里, oracle表的表名不让用as&nbsp; 这边把as去掉就行了<br /></div><br />但是 以去掉 表明後面的AS &lt;select id="getEmp" parameterClass="java.lang.String"&nbsp;&nbsp; resultMap="empMAPResult" &gt;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;![CDATA[&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select a.empName as empName,&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.empAddr as empAddr,&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.empSex as empSex,&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.depName as departName,&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.des as des&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from emp a, depart as b where a.departNo=b.depNo&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]]&gt;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;/select&gt;&nbsp; <br />&nbsp;&nbsp; 這一部份會再xml文件里報紅色錯誤,不真的爲什麽 。。。

解决方案

引用resultMap 里是6个字段, select 里是 5个字段我自己模拟试了下,不会报错啊
解决方案二:
引用<resultMap id="empMAPResult" class="emp"> <result property="id" column="id" /> <result property="empName" column="empname"/> <result property="empAddr" column="empaddr"/> <result property="empSex" column="empsex"/> <result property="departName" column="depart.depname"/> <result property="des" column="depart.des"/> </resultMap> 引用select a.empName as empName, a.empAddr as empAddr, a.empSex as empSex, b.depName as departName, b.des as des from emp a, depart b where a.departNo=b.depNo resultMap 里是6个字段, select 里是 5个字段
解决方案三:
select a.id as id, a.empName as empName, a.empAddr as empAddr, a.empSex as empSex, b.depName as departName, b.des as des from emp a, depart b where a.departNo=b.depNo
解决方案四:
引用Make sure that all result coumns in a resultMap are in the field list of select statementselect里少了select id
解决方案五:
引用 這一部份會再xml文件里報紅色錯誤,不真的爲什麽 。。。 报什么错呢?select a.empName as empName, a.empAddr as empAddr, a.empSex as empSex, b.depName as departName, b.des as des from emp a, depart b where a.departNo=b.depNo 这是个正常的SQL语句
解决方案六:
<![CDATA[ select password from user where username = #username#]]> 这种带参数的语句才需要parameterClass吧
解决方案七:
引用<select id="getEmp" parameterClass="java.lang.String" 你sql语句里的parameter呢?
解决方案八:
引用select a.empName as empName, a.empAddr as empAddr, a.empSex as empSex, b.depName as departName, b.des as des from emp a, depart as b where a.departNo=b.depNo depart as b 错在这里, oracle表的表名不让用as 这边把as去掉就行了

时间: 2024-10-24 08:48:55

ibatis 2.0 1:1 sql 問題的相关文章

[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題

原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得Top的Wait(from Wait statistics, or please tell me where it hurts) ,如下, SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; GO --1.取得目前最高的Wait WITH [Waits]

Sql:請假跨月份問題,或跨年份問題 日期部分边界

---請假跨月份問題,或跨年份問題 日期部分边界 declare @sart datetime,@end datetime,@d int,@s1 datetime,@e1 datetime,@s2 datetime,@e2 datetime,@t varchar(50),@t2 varchar(50),@I int set @sart='2012-11-18 14:56:12' set @end='2012-12-08 14:56:12' --set @I=DATEDIFF(ms,@sart,@

Oracle常見問題集(四)

oracle 21. 用EXISTS替換DISTINCT 當提交一個包含一對多表資訊(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換 例如: 低效: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_NO = E.DEPT_NO 高效: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT 'X

Oracle常見問題集(一)

oracle 一.常見問題 1. Oracle安裝完成後的初始口令 internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp   2. ORACLE9IAS WEB CACHE的初始默認用戶和密碼? administrator/administrator   3. oracle 8.0.5怎麽創建資料庫 用orainst.如果有motif介面,可以用orainst /m   4. oracle

Oracle常見問題集(二)

oracle 71. 內核參數的應用 shmmax 含義:這個設置並不決定究竟Oracle資料庫或者作業系統使用多少實體記憶體,只決定了最多可以使用的記憶體數目.這個設置也不影響作業系統的內核資源.   設置方法:0.5*實體記憶體 例子:Set shmsys:shminfo_shmmax=10485760 shmmin 含義:共用記憶體的最小大小. 設置方法:一般都設置成爲1. 例子:Set shmsys:shminfo_shmmin=1: shmmni 含義:系統中共用記憶體段的最大個數.

Oracle常見問題集(三)

oracle 151. 如何監控 SGA 中字典緩衝區的命中率? select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio", (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" from v$rowcache where gets+getmisses <>0 group by p

ORACLE常用問題1000問(之一)

oracle 大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步! 對ORACLE高手來說是不用看的. 1. Oracle安裝完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? adm

ORACLE常用傻瓜問題1000問(之三)

oracle 88. CHR()的反函數是? ASCII() SELECT CHAR(65) FROM DUAL; SELECT ASCII('A') FROM DUAL; 89. 字符串的連接 SELECT CONCAT(COL1,COL2) FROM TABLE ; SELECT COL1||COL2 FROM TABLE ; 90. 怎么把select出来的结果导到一个文本文件中? SQL>SPOOL C:\ABCD.TXT; SQL>select * from table; SQL &

ORACLE常用傻瓜問題1000問(之一)

oracle                                             ORACLE常用傻瓜問題1000問(之一)    作者:  CCBZZP           大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!         對ORACLE高手來說是不用看的.   1. Oracle安裝完成后的初始口令?   internal/oracle