Mybatis注解使用

package com.gao.dao;

import com.gao.pojo.User;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

public interface UserMapper {

    /*
    * 关于@Param
    * 基本类型的参数或者String类型,需要加上
    * 引用类型不需要加
    * 如果只有一个基本类型的话,可以忽略,但是建议大家都加上
    * 我们在SQL中引用的就是我们这里的@Param()中设定的属性名!
    * */

    /*
    * 关于#{}和${}
    * ${}可以有效的防止sql的注入
    * 在能用#{}的地方尽量用${}
    * */

    @Select("select * from user")
    List<User> getUsers();

    //方法存在多个参数,所有的参数前面必须加上@Parm("id")注解
    @Select("select * from user where id = #{id}")
    User getUserByID(@Param("id") int id);

    @Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})")
    int addUser(User user);

    @Update("update user set name=#{name},pwd=#{password} where id=#{id}")
    int updateUser(User user);

    @Delete("delete from user where id = #{uid}")
    int deleteUser(@Param("uid") int id );
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以回答这个问题。MyBatis 注解方式使用 where 子句可以在 SQL 语句中添加条件。可以使用 @Where 注解来指定 where 子句的条件,例如:@Where("name = 'Tom'")。也可以使用 @WhereProvider 注解来指定 where 子句的条件,例如:@WhereProvider(type = UserSqlProvider.class, method = "whereCondition")。在这个例子中,UserSqlProvider 是一个自定义的 SQL 语句提供者类,其中的 whereCondition 方法返回 where 子句的条件。 ### 回答2: Mybatis注解方式使用where可以通过@Select、@Update、@Delete注解的方法上使用@Param注解来传递参数,并且可以在SQL语句中使用动态的where条件。 在注解方式中,可以使用${}和#{}两种方式传递参数。其中,${}会直接将参数的值拼接到SQL语句中,而#{}则会使用预处理语句的方式传递参数,可以有效防止SQL注入。 下面是一个使用where条件的示例: @Select("SELECT * FROM user WHERE 1=1 " + "<if test=\"name != null and name != ''\"> AND name = #{name} </if> " + "<if test=\"age != null\"> AND age = #{age} </if> ") List<User> findUser(@Param("name") String name, @Param("age") Integer age); 在上述代码中,使用了where条件来动态拼接查询语句。where 1=1是为了保证该条件不为空,以便后续的条件可以使用AND连接。 在<if>标签中,使用了test属性来判断条件是否满足。当name不为空时,会拼接name = #{name}到SQL语句中;当age不为空时,会拼接age = #{age}到SQL语句中。 通过这种方式,可以根据传入的参数动态生成where条件,提高代码的灵活性和可重用性。 同时,需要注意的是,如果某个参数可能为空,需要进行非空判断,以避免查询出错或者无法返回正确的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值