日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql二级缓存,mybatis的动态sql和二级缓存

發布時間:2024/9/27 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql二级缓存,mybatis的动态sql和二级缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mybatis的#{}和${}的區別就像是 PreparedStatement 和statement , 使用${}接收的參數還需用@Param注解修飾 , 推薦用#{}

動態SQL

MyBatis 的強大特性之一便是它的動態 SQL。如果你有使用 JDBC 或其它類似框架的經驗,你就能體會到根據不同條件拼接 SQL 語句的痛苦。例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號。利用動態 SQL 這一特性可以徹底擺脫這種痛苦。

雖然在以前使用動態 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射語句中的強大的動態 SQL 語言得以改進這種情形。

動態 SQL 元素和 JSTL 或基于類似 XML 的文本處理器相似。在 MyBatis 之前的版本中,有很多元素需要花時間了解。MyBatis 3 大大精簡了元素種類,現在只需學習原來一半的元素便可。MyBatis 采用功能強大的基于 OGNL 的表達式來淘汰其它大部分元素。

代碼演示

select * from user

id = #{id}

select last_insert_id()

insert into user(name,password,address)values(#{name},#{pwd},#{address})

insert into user(name,password,address)values(#{name},#{pwd},#{address})

update user

name = #{name},

password = #{pwd},

address = #{address}

where id = #{id}

select *from user

and name=#{name}

and password=#{pwd}

and address=#{address}

select *from user

where id in

#{id}

select *from user

and name=#{name}

and password=#{pwd}

and address=#{address}

insert into user(name,password,address)

values

(#{user.name},#{user.pwd},#{user.address})

延遲查詢

開啟配置(1-1)

映射文件

select deptId,deptName from dept where deptId = #{deptId}

select

e.empId empId

,e.empName empName

,e.deptId deptId

from emp e

延遲查詢

映射文件(一對多)

select empId,empName from emp where deptId = #{deptId}

select

d.deptId deptId

,d.deptName deptName

from dept d

測試

@Test

public void test1() throws IOException {

SqlSession session = Dbutil.getSqlSession();

List list = session.getMapper(IUserDao.class).query();

for (Dept dept : list) {

System.out.println(dept.getList());

}

session.close();

}

緩存開啟二級緩存

select empId, empName,deptId from emp where empId = #{empId}

測試

@Test

public void test1() throws IOException {

SqlSession session = Dbutil.getSqlSession();

List list = session.getMapper(IUserDao.class).query(1);

for (Emp emp : list) {

System.out.println(emp);

}

session.close();

System.out.println("---------------");

session = Dbutil.getSqlSession();

list = session.getMapper(IUserDao.class).query(1);

for (Emp emp : list) {

System.out.println(emp);

}

session.close();

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql二级缓存,mybatis的动态sql和二级缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。