Mybatis(根据id查找这一行的数据)

首先在查询之前,我们先要做些基础的工作先创建一个以你的数据库命名的model类

我的数据库的名字叫admin

我就创建了一个Admin的类

用来方便数据的访问

然后我们就要创建一个接口来声明我们要写的方法

我创建的接口命名为AdminDao

在创建一个xml的类用来实现声明的方法

<mapper namespace="dao.AdminDao">

找到对应的接口,并实现接口中定义的方法。

  1. parameterType="int"表示这个select操作接受一个int类型的参数,通常用于指定查询条件,例如id
  2. resultType="model.Admin"表示预期的查询结果将被映射到model.Admin类的实例上,即查询结果的每一行都会创建一个新的Admin对象。

下面就是你要查询的SQL语句

不过在Mybatis中给id赋的值得用#{}

因为在MyBatis中,#{}用于将参数占位符替换为实际的参数值。这种语法有几个关键点:

  1. 参数替换#{id}是一个参数占位符,它告诉MyBatis在执行SQL语句时,这里需要被替换为实际的参数值。

  2. 预处理语句:使用#{}可以防止SQL注入攻击,因为它使用了预处理语句(prepared statements)。数据库会先接收SQL语句的结构,然后分别接收参数值,这样可以确保参数值被正确地转义。

  3. 参数名称#{id}中的id是参数名称,它对应于在Java代码中传递给MyBatis方法的参数名称。例如,如果你的Mapper方法如下:

     

    Admin findAdminById(int id);

    这里的id就是参数名称,它将被插入到SQL语句中的#{id}位置。

  4. 数据类型转换:MyBatis会根据参数的实际数据类型进行适当的转换。例如,如果id是一个int类型,在数据库操作中,MyBatis会将其转换为数据库能理解的格式。

  5. MyBatis配置:在MyBatis的配置中,不需要额外设置就可以使用#{}。MyBatis默认使用#{}作为参数占位符。

  6. ${}的区别:MyBatis还提供了${}语法,它用于字符串替换,而不是参数替换。${}会将变量直接插入到SQL语句中,没有预处理语句的保护,因此如果使用不当,容易受到SQL注入攻击。

  7. 使用场景#{}通常用于<update><insert><select>语句中,用于将方法的参数映射到SQL语句的相应位置。

  8. 复杂表达式#{}也可以用于更复杂的SQL表达式中,例如,作为ORDER BYGROUP BY子句的一部分,或者在函数调用中。

然后创建一个用来输出结果得到类

我创建的类叫Test1

然后就可以看到结果了我查询的id是4

另外说明一下,我这个结果是加了日志来方便看执行过程

如果你也相加的话

只需要在mybatis.xml配置文件里加一句

<setting name="logImpl" value="STDOUT_LOGGING"/>

就可以在下面看到日志

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值