注意

通过java代码提供了动态标签 通过标签配置生成对应的2动态sql语句

1.查询场景

根据用户查询场景不同

生成不同配置

in  确定的数据 不能用子查询 效率极低  数据量不能太大

50条以内

1000条开线程,注以标号

in  用string时  注意‘’

${}硬拼接 容易sql注入  

#{}当字符串 执行不了

动态查询多条  

foreach 

item 

separator 

open

if test

include refid

通过@param封装指定的key

多条删除通过foreach 和 动态标签

与一次查询几个场景类似

动态插入 添加场景

c从文件批量导入

集合使用

批量添加

<insert id="addUserByUserList">
insert into user(username,password,age) values
<foreach collection="addUserList" item="user" separator=",">
(#{user.username},#{user.password},#{user.age})
</foreach>

</insert>
动态修改语句
一个sql多个业务使用
<!--where替换前面AND SET替换后面and 页面不填把数据清掉-->

mybatis缓存,如果数据查询,mybatis缓存查询数据库时,查询相同的数据,会自动存入缓存,不多次查询数据库。

一级缓存,sqlsession级别缓存,一个sqlsession对应中生效。

在一次事务控制中 如过使用了相同的数据 直接从缓存加载。

长期保存:跨sqlsession级别缓存。

字典数据:常用的数据存入数据库。全局参数比如:系统级别菜单名,字典表

二级缓存没有开启。

配置一些数据。

 

posted @ 2024-12-10 21:36  langpo  阅读(11)  评论(0)    收藏  举报