Mybatis 中 $ 和 #的区别 分页插件实现 开启sql日志

$ \ # 的区别

1.1 $的底层使用的是 Statement # 的底层是PreparedStatement

1.2 $ 单参时 参数名不能随意写 即使 0 ,1 param1 param2占位也不识别
除非使用 @Param(“名字”)

1.3 $ 容易被sql注入 # 不会存在sql注入

1.4 特殊情况下 比如表名 作为变量 则必须使用 $

1.5 如果是字符串类型的变量 需要手工拼接 单引号

运用最多的是可以将表名称 当做变量传入到Sql定义文件中



public interface UserDao {
	
	User findByid(@Para("table_name") String name @Para("id")int id);
	
}


//sql定义文件
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
 <!-- namespace指定和哪个Mapper映射器接口对应 -->
<mapper namespace="com.liheng.dao.UserDao2">
	<!-- 定义SQL语句 -->	
    <select id="findByid" parameterType="int" resultType="com.liheng.bean.User">
    //可以将table_name 变量传入到sql定义文件当做变量
         select * from ${table_name} where id= #{id}
    </select>
</mapper> ```

开启sql查询日志

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

分页插件实现

引入 pageHelper jar包  

使用		PageHelper.startPage(pageNum, pageSize); 查询之前调用即可实现分页功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值