SSM的XML数据库SQl语言错误求解


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.experience.dao.User_modify_dao">
    <update id="userModify" parameterType="user">
        update user
        <set>
            <if test="user_name !=null and user_name !=''">
                user_name = #{user_name},
            </if>
            <if test="user_password !=null and user_password !=''">
                user_password = #{user_password},
            </if>
            <if test="sex !=null and sex !=''">
                sex = #{sex},
            </if>
            <if test="tel !=null and tel !=''">
                tel = #{tel},
            </if>
            <if test="address !=null and address !=''">
                address = #{address},
            </if>
            <if test="word !=null and word !=''">
                word = #{word},
            </if>
        </set>
        <where>
            id =#{id}
        </where>
</update>
</mapper>

img

img

img

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7480516
  • 这篇博客也不错, 你可以看下SSM框架结合xml进行sql编写配置
  • 除此之外, 这篇博客: SSM框架整合(超详细附带源码)中的 4.对xml文件做具体配置 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先在applicationContext.xml配置

    <!-- service和dao组件扫描-->
        <context:component-scan base-package="com.dao"/>
        <context:component-scan base-package="com.service"/>
        
     <!--将mysql加载和配置的权利由mybatis交给spring,这是为了整合ssm-->
     <context:property-placeholder location="classpath:jdbc.properties"/>
        <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
        
     <!--配置sessionFactory--> 
     <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="druidDataSource"/>
        <property name="configLocation" value="classpath:sqlMapConfig-spring.xml"/>
        <!--    mapper扫描  -->
        <property name="mapperLocations" value="classpath:com/mapper/*.xml"/>
    </bean>  
    
        <!--扫描mapper(dao)所在的包 为mapper创建实现类-->
    <bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.dao"/>
    </bean> 
    

    spring-mvc.xml:

    <!--组件扫描controller-->
    <context:component-scan base-package="com.controller"/>
    <!--    MVC注解驱动-->
        <mvc:annotation-driven></mvc:annotation-driven>
    <!--    内部资源视图解析器-->
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    <!--    开发静态资源的访问权限-->
        <mvc:default-servlet-handler></mvc:default-servlet-handler>
    </beans>
    

    splMapConfig-spring.xml

    <!--这里面以后就用来起别名就好了-->
    <typeAliases>
    <!--    下面这两种都行,一个是具体类,一个是扫包-->
    <!--    <typeAlias type="com.domain.User" alias="user"/>-->
    <!--    管用:开头大小写都行起别名-->
        <package name="com.domain"/>
    </typeAliases>
    

    web.xml

    <!--spring监听器-->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <!--  springmvc前端控制器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
    <!--    任何资源都进web框架-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
      <!--乱码过滤器 -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
        <filter-mapping>
            <filter-name>characterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>