SQL 命令未正确结束

aoyiufuwa 2012-10-29 11:32:19
数据库是oracle;
使用applicationContext.xml连接数据库。

public class UsersDaoImpl extends BaseDao<Users> implements UsersDao {

public List<Users> getUserLike(String context,
String beginTime, String endTime) {
// TODO Auto-generated method stub
String hql="from Users u where 1=1 ";
if(context!=null && !"".equals(context))
{
hql += "and (u.trueName like '%"+context+"%' or u.name like '%"+context+"%')";
}
if(beginTime.trim()!=null && endTime.trim()!=null && !"".equals(beginTime.trim()) && !"".equals(endTime.trim()))
{
hql += "and u.time between '"+beginTime+"' and '"+endTime+"'";
}
return this.getHibernateTemplate().find(hql);
}


}


错误提示:

[WARN ]2012-10-29 11:16:55org.hibernate.util.JDBCExceptionReporter-SQL Error: 933, SQLState: 42000
[ERROR]2012-10-29 11:16:55org.hibernate.util.JDBCExceptionReporter-ORA-00933: SQL 命令未正确结束

[WARN ]2012-10-29 11:16:55org.apache.struts.action.RequestProcessor-Unhandled Exception thrown: class org.springframework.dao.InvalidDataAccessResourceUsageException
2012-10-29 11:16:55 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [action] in context with path [/hr] threw exception [org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query] with root cause
java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:785)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:860)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3425)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1490)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
at oracle.jdbc.internal.OraclePreparedStatement$$EnhancerByProxool$$45301f6.executeQuery(<generated>)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
at org.hibernate.loader.Loader.doQuery(Loader.java:662)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
at org.jb.common.dao.BaseDao.findByProperty(BaseDao.java:61)
at com.hr.biz.impl.UsersBizImpl.login(UsersBizImpl.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy5.login(Unknown Source)
at com.hr.struts.action.UsersAction.doLogin(UsersAction.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.jb.common.filter.LanguageFilter.doFilter(LanguageFilter.java:19)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1824)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
...全文
1518 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
静山晚风 2013-11-27
  • 打赏
  • 举报
回复
我也碰到了楼主同样的问题,求解
wxtsuperman 2012-11-01
  • 打赏
  • 举报
回复
先把SQL语句打印出来 在plsql里执行一下 看是不是SQL有错误。
aoyiufuwa 2012-11-01
  • 打赏
  • 举报
回复
这样写还是有错,还是报SQL 命令未正确结束。

public List<Users> getUserLike(String context,
String beginTime, String endTime) {
// TODO Auto-generated method stub
String hql="from Users";
// if(context!=null && !"".equals(context))
// {
// hql += "and (u.trueName like '%"+context+"%' or u.name like '%"+context+"%')";
// }
// if(beginTime.trim()!=null && endTime.trim()!=null && !"".equals(beginTime.trim()) && !"".equals(endTime.trim()))
// {
// hql += "and u.time between '"+beginTime+"' and '"+endTime+"'";
// }
return this.getHibernateTemplate().find(hql);
}
tanwan 2012-10-30
  • 打赏
  • 举报
回复
弱弱的补充一句,和sql无关- -
content.trim()!=null 有意义嘛?
aoyiufuwa 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
配置显示下sql语句,放到pl里运行会提示
[/Quote]
pl是什么?一些太专业语数我不太懂
aoyiufuwa 2012-10-30
  • 打赏
  • 举报
回复
应该不是空格问题吧。我调整了一下还是不行
zjgsu_cy_ak 2012-10-30
  • 打赏
  • 举报
回复
你先把判断时间的那段if去掉,运行下看看,是不是判断时间的时候出错了
  • 打赏
  • 举报
回复
你第二部记得加空格,第三部拼hql语句怎么不加空格呢?
hql += "and (u.trueName like '%"+context+"%' or u.name like '%"+context+"%')";

"and u.time between '"+beginTime+"' and '"+endTime+"'";
}
右括号和and中间无空格。
jackpay 2012-10-29
  • 打赏
  • 举报
回复
配置显示下sql语句,放到pl里运行会提示
Cactus_hxk 2012-10-29
  • 打赏
  • 举报
回复
把sql语句打印出来,看看有没有问题!
你好毒你好毒 2012-10-29
  • 打赏
  • 举报
回复
这是你的sql拼接出现了空格问题
悄悄路过00 2012-10-29
  • 打赏
  • 举报
回复
你没加空格 在and前面加一个空格,你在试试看

81,091

社区成员

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

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