mybatis plus中编写sql语句

sql 语句是写在对应的xml文件中
首先要解决maven默认不加载xml文件的问题
1 首先要写入相关配置文件
在pom 导入下面内容

 <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

在application中写入如下内容

mybatis-plus:
  mapper-locations: classpath*:**/xml/*.xml

2在对应的serviceimpl中调用baseMapper 接口,应为在mybatis plus 中对应的serviceImpl 接口继承自对应的mapper接口,mapper接口又继承自baseMapper 接口。
在这里插入图片描述

在这里插入图片描述

比如说

baseMapper.countRegisterDay(day)

4 在mapper文件中编写对应的接口

 Integer countRegisterDay(String day);

3 在对应的xml 中编写sql语句
id 为方法的名字。resultType 为方法返回的类型

<?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.boshrong.ucentor.mapper.UcenterMemberMapper">
    <select id="countRegisterDay" resultType="java.lang.Integer">
        select count(*) from ucenter_member um where DATE (um.gmt_create)=#{day}
    </select>

</mapper>

注意若传入的值有多个参数怎么解决?
比如说方法为

 Integer countRegisterDay(String day,String time1);

sql 中获取多个值的方法可以有两种
1 方法一 ,通过索引获取
#{0} 获取day的值, #{1} 获取time1的值
2 方法二, 通过@Param获取

 Integer countRegisterDay(@Param ("aa")String day,@Param ("bb")String time1);

#{aa},#{bb} 获取

#{} 与 ${} 的区别
#{} 是预编译处理,是占位符。 Mybatis 在处理 #{} 时,会将sql 中的#{} 替换成?号,调用PreparedStatement 来赋值。
${} 是字符串替换,是拼接符。 就是会将 KaTeX parse error: Expected 'EOF', got '#' at position 30: …Statement 来赋值。 #̲方式能够很大程度防止sql注入…方式。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值