MyBatis基础(3)

MyBatis高级用法

mybatis

  1. 动态sql
<foreach collection="要遍历的集合" open="起始符号" close="结束符号" separator="分隔符" item="临时变量名">
<if test="条件">sql片段</if>
<where> 去掉多余and
<set>   去掉多余的,
  1. 分页
    2.1) 物理分页 使用sql语句进行分页(mysql limit), 分页sql不通用, 效率高
    2.2) 逻辑分页 全部查询,sql简单通用, 效率低,只适用于数据量少的情况
    sqlSession.selectList(“sql id名”, new RowBounds(下标, 大小));

  2. 数据库与实体类不一致的情况
    first_name
    firstName
    方法1: 在select语句中使用列别名, 只要让别名与属性对应
    方法2:

<select resultMap="id值" ...>
<resultMap id="">
	<id column="主键列名" property="属性名">
	<result column="列名" property="属性名">
</resultMap>
  1. 连接查询的映射(复杂的结果映射)

select … from product p inner join category c on p.category_id=c.id;

class Product {
id name…
private Category category; // id,name… 关系属性
}

class Category {

}

<resultMap id="" type="Product">
	<id column="主键列名" property="属性名">
	<result column="列名" property="属性名">
	<assoiation property="category" javaType="Category">
		<id>
		<result>
	</assoiation>
</resultMap>
  1. 插入数据时

    可以用来把自增列生成的主键值赋值给实体类的属性

  2. #{} ${}
    #{} 生成? 占位符, ${} 是直接拼接字符串,有注入攻击风险
    #{} 不能运算, ${} 可以运算
    #{} 只能替换值,不能替换(表名,列名,关键字), 而${}都可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值