Mybatis语法错误的一个坑

前言

        为什么说是一个坑呢?是因为这个错误实在是比较难出现,只有在特定的场合才会出现,是关于Mybatis语法错误的一个问题,说到底,其实就是一个小逗号的事情。

问题描述

        先来看一段sql:


<update id="updateByPrimaryKeySelective" parameterType="com.weimob.mengdian.promotion.dao.model.PromotionInfo">
        update promotion_info set
        <if test="title != null">
            title = #{title,jdbcType=VARCHAR},
        </if>
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Mybatis一个Java持久层框架,它可以帮助我们更方便地操作数据库。Mybatis采用了SQL映射文件的方式来配置SQL语句,下面是一些基本的Mybatis语法解析: 1. SQL语句的映射 MybatisSQL语句和Java方法进行映射,我们需要在SQL映射文件中定义SQL语句和对应的Java方法。例如: ``` <select id="getUserById" parameterType="int" resultType="User"> SELECT * FROM users WHERE id = #{id} </select> ``` 这段代码表示将id为getUserById的SQL语句映射到一个名为getUserById的Java方法中,该方法的参数类型为int,返回类型为User类型。 2. 参数绑定 Mybatis使用#{}语法来绑定SQL语句中的参数,例如: ``` <select id="getUserById" parameterType="int" resultType="User"> SELECT * FROM users WHERE id = #{id} </select> ``` 在这个例子中,#{id}表示将Java方法中的id参数绑定到SQL语句中的id变量。 3. 结果映射 Mybatis使用resultType属性来指定Java对象的类型,例如: ``` <select id="getUserById" parameterType="int" resultType="User"> SELECT * FROM users WHERE id = #{id} </select> ``` 在这个例子中,resultType="User"表示将查询结果映射成一个User对象。 4. 动态SQL Mybatis支持动态SQL,可以根据不同的条件生成不同的SQL语句。例如: ``` <select id="getUser" parameterType="User" resultType="User"> SELECT * FROM users WHERE 1=1 <if test="id != null"> AND id = #{id} </if> <if test="name != null"> AND name = #{name} </if> </select> ``` 在这个例子中,根据User对象中的id和name属性生成不同的SQL语句。 5. 插入操作 Mybatis使用insert语句来执行插入操作,例如: ``` <insert id="insertUser" parameterType="User"> INSERT INTO users(id, name, age) VALUES(#{id}, #{name}, #{age}) </insert> ``` 这段代码表示将一个User对象插入到数据库中。 6. 更新操作 Mybatis使用update语句来执行更新操作,例如: ``` <update id="updateUser" parameterType="User"> UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id} </update> ``` 这段代码表示将一个User对象更新到数据库中。 7. 删除操作 Mybatis使用delete语句来执行删除操作,例如: ``` <delete id="deleteUserById" parameterType="int"> DELETE FROM users WHERE id = #{id} </delete> ``` 这段代码表示根据id删除数据库中的一条记录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值