ibatis中xml问题。

发布于 2021-11-20 20:19:45 字数 2374 浏览 756 评论 6

提示错误:
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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

流心雨 2021-11-22 13:28:50

我现在改成users  也可以。。

明月松间行 2021-11-22 13:23:10

可是我现在什么都没改,只是重新启动了myeclipse,就可以运行了。。。。郁闷。。

瑾兮 2021-11-22 12:08:01
<typeAlias alias="users" type="com.product.user.Users"/>
你这里定义了Users的,所以是users,不是Users
要么写上全类名试试
情痴 2021-11-22 03:43:50

最好把sql打出来,那样定位问题快。

陌若浮生 2021-11-21 21:58:41

parameterClass是写传入的参数类型吧?我自定义的类型就是Users啊?求解!!

本王不退位尔等都是臣 2021-11-21 05:11:38
parameterClass="users" 是users不是Users
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文