1.连接池
特点:创建一些固定的可重用的连接对象,重复利用。
被某个持有的线程使用完毕之后,然后归还连接池中,保证线程安全。
2.mybatis
mybatis插入数据的时候,获取表中自增长主键id的值(最后一次插入数据值)
insert标签中子标签seletkey
(1)属性:
keyProperty:实体类中的属性值(通过id字段要和表中id字段映射)
keyColumn:表中的主键字段 id字段
order:什么时候执行 sekectkey标签中的语句
SELECT LAST_INSERT_ID()
AFTER:在执行插入之后,执行selectkey的语句,获取最后一次自增长主键的id值。
BEFORE: 插入数据之后执行
resultType: 获取到的自增长主键类型 int
(2)模糊查询
mybaits固定属性 ‘%${value}%’
${} : 字符串拼接符号
值和 % % 之间进行拼接
id IN(3,6,9); 条件 使用mybatis提供的动态sql
foreach标签将里的数据遍历出来。
collection:当前实体类中封装的集合属性名称
QueryVo里面的集合属性就是 ids
open:使用子查询 in(x,x,x) 以什么格式开始查询
现在" id in ("
separator:分割符号 ,隔开
close:以什么格式结束 ")"
item:循环遍历过程中的变量名称
foreach中间的内容 #{item里面指定的变量名称}
(3)动态的sql片段
将重复性的sql抽去出来,在其他sql中引入这个sql片段即可
refid:引入sql片段指定的id
<include refid="mySelectSql"/>
mybatis里面的占位符号 #{实体类的属性名称}
(4)当表中的字段和实体类属性名称不对应的情况下
方式1:在查询的时候不使用 *
而且给出具体的字段名称,别名和实体类的属性名称一致即可
<select id="findALL" resultType="student">
select
s.id stuId,
s.name stuName,
s.age stuAge ,
s.address stuAddress,
s.birthday stuBirthday
from student s;
</select>
resultMap:
什么时候使用?
1)当实体类属性和字段一样
2)mybatis多表查询的时候可以用
使用方式
首先在映射文件中定义resultMap
然后在具体的增删改查语句讲resulMap引入
resultMap里面就是可以将每一个字段和实体类的属性一一映射
定义resultMap
id:resultMap它的标识id
配置主键字段:
表中键字段 id和实体类的属性id 一致
property:实体类的属性名称 stuId
column:表中字段列的名称 主键id
普通字段和实体类的其他属性名称一一对应