欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

ibatis中xml有关问题

更新时间: 2014-01-05 02:01:00 责任编辑: Author_N1

 

ibatis中xml问题。

提示错误:
javax.servlet.ServletException: org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/product/user/Users.hbm.xml.  
--- The error occurred while applying a parameter map.  
--- Check the updateUsers-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where UserId=2' at line 1 org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
com.product.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:36)


root cause 

好像是更新已有信息那一段有语法错误,但是感觉没错啊。。找了好久 求指点
我是要实现从页面中输入数据,来更新数据库信息
下面是xml文件。。

<?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 namespace="Users">

  <typeAlias alias="users" type="com.product.user.Users"/>
  

  
  <select id="getUserByAccount" resultClass="users" parameterClass="java.lang.String">
    SELECT
      UserId,
      UserName,
      Account,
      Password
    FROM Users where Account=#account#
  </select>
  
  <!-- 获取所有用户信息 -->
   <select id="getUsersList" resultClass="users" >
    SELECT
      UserId,
      UserName,
      Account,
      password
    FROM Users order by UserId desc
  </select>
  
  <!-- 更新已有信息 -->
  <update id="updateUsers" parameterClass="Users">
  update Users
      set
      UserName=#userName#,
      Account=#account#,
      password=#password#
    where UserId=#userId#
  </update>
  
  <!--修改个人信息-->
  <insert id="insertUsers" parameterClass="Users">
    <!-- insert into Users
     (UserName,Account,password,UserId)
     values
     (#userName#,#accout#,#password#,#userId#);-->
  </insert>

</sqlMap>

--参考方法--
更新已有信息方法按照下面例子写全,引用参数类的路劲写全等改改。

<update id="updateRecord"
parameterClass="com.framework.mapping.InfoType">
<![CDATA[ update infoType set id = #id#]]>
<dynamic>
<isNotNull property="name" prepend=",">
<![CDATA[ name = #name# ]]>
</isNotNull>
<isNotNull property="parentId" prepend=",">
<![CDATA[ parentId = #parentId# ]]>
</isNotNull>
<isNotNull property="sort" prepend=",">
<![CDATA[ sort = #sort# ]]>
</isNotNull>
<isNotNull property="describe" prepend=",">
<![CDATA[ describe = #describe# ]]>
</isNotNull>
</dynamic>
<![CDATA[ where id = #id# ]]>
</update>

--参考方法--
只是规范一下写法而已,防止空格、换行sql拼接等不必要错误罢了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:01:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4521/
本文WWW.DOC100.NET DOC100.NET版权所有。