Mybatise

1、#{}和${}的区别是什么?

(1)#{}是预编译的处理,${}是字符串替换

(2)mybatis在处理#{}时候,会将sql中的#{}替代成?号,调用PreparedStatement的set赋值

(3)mybatis在处理${}时,就是把${}替换成变量的值。

(4)使用#{}可以有效防止sql注入,提高系统的安全性。

2.springMVC接受参数的几种方式

@PathVariab


@ModelAttribute


HttpServletRequest


@RequestParam


3.jdbc的不足之处,mybatis是怎样处理的

(1)数据库连接创建频繁和释放频繁造成系统资源的浪费从而影响系统性能

解决:在SqlMapConfig.xml里面设置 了数据库连接池,使用连接池管理数据连接

(2)sql语句写在代码中造成代码不容易维护,实际sql变化可能较大,sql变动需要改变java代码

解决:将sql语句配置到mapper.xml文件中是她与代码分离

(3)向sql语句传参麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应

解决:mybatis自动将Java对像映射到sql语句

(4)对结果集解析麻烦,sql变化导致解析代码变化,并且解析之前需要遍历,如果能将的护具库记录封装成pojo对象解析比较方便

解决:mybatis自动将sql执行结果映射至java对象

4.mybatis的编程步骤

创建 SqlSessionFactory
 通过SqlSessionFactory创建 SqlSession
通过sqlsession执行数据库操作
调用session.commit()提交事务
调用session.close()关闭会话

5.mybatis和hibernate的不同点

(1)mybatis的sql语句写在mapper.xml里面便于管理,hibernate的简单sql是自动生成的

(2)mybatis的sql容易优化,hibernate封装性比较好

(3)hibernate的sql移植性比mybatis好

(4)hibernate有更好的缓存机制,提供第三方缓存。mybatis本身提供的缓存机制不佳

(5)Hibernate的Dao层开发比mybatis简单,mybatis需要维护sql和结果映射

(6)mybatis对数据库的依赖比较大

6.hibernate对的调优方案

(1)制定合理的缓存策略

(2)尽量使用延迟加载的特性

(3)采用合理地session管理机制

(4)使用批量抓取,设置合理地批量处理参数

7.mybatis的调优方案

MyBatisSession方面和HibernateSession生命周期是一致的

(1)采用合理地session管理机制

(2)MybatisSQL是手动编写的,所以可以按需求指定查询的字段





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值