Mybatis框架总结

1.Mybatis的优点
①sql语句写在xml中,与Java代码解耦
②mybatis不需要手动开关数据库连接
③mybatis能够很好与Spring集成
④很好的与各种数据库兼容,只要JDBC支持的数据库,mybaits都支持
2.#{}和${}的区别是什么?
#{}是预编译处理,${}是字符串替换
具体例子如下:
①seleclt * from user where id = #{};
如果传入的值为7,那么sql语句具体为:
select * from user where id = ‘7’,加上了单引号
②select * from user where id = ${};
如果传入的值为7,那么sql语句具体为:
select * from user where id = 7,没有双引号
#{}是预编译处理的,能够有效防止sql注入,比较安全,所以能用#{}尽量用#{},
但是在替换表名、属性名的时候,需要用 ${}
3.当实体类中的属性名和表中的字段名不一样 ,怎么办?
起别名,让字段名的别名和实体类中的属性名一致
4.一级缓存和二级缓存
一级缓存是每个sqlsession独享的,每创建一个sqlsession都有一个一级缓存,当该sqlsession关闭后,一级缓存就清空了
二级缓存是多个sqlsession共享的,一个sqlsession关闭后,并不会清空二级缓存

一级缓存和二级缓存的作用基本上是一致的,都是把一次查询结果放到缓存中去,下一次查询的时候就会先从缓存中找有没有记录,有的话直接返回,没有再去数据库里查询,减少了数据库的负担,
但是有增、删、改的时候就会清空缓存,避免脏读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值