首页 > 其他 > 详细

Mybatis+hribernate总结

时间:2019-03-14 21:09:08      阅读:229      评论:0      收藏:0      [点我收藏+]

**1.什么是 MyBatis?**
答:Mybatis是一个持久层的框架,轻量级的框架 因为现在主流的持久层框架就是 Mybatis。能
够快速处理大批量数据。
mybatis是一个半自动化的对象关系映射。
**2.MyBatis能给我们实现哪些功能?**
答:1.内部维护了线程池
2.mybatis自己维护了事务(后来交给 Spring来处理)
3.结果集自动的封装为 javabean.
4.半自动话的原因是 需要手动编写 SQL语句。
5.实现数据库的缓存处理。
**3.MyBatis里#号与$之间的区别?**
答:.${}和#{}
${}它是不安全的,容易被攻击(sql注入攻击)
#{}它给参数添加了‘name‘预编译机制 preparedStatements更加的安全
提倡使用。
**4.Mybatis比 IBatis比较大的几个改进是什么**
答:
1.有接口绑定,包括注解绑定 sql和 xml绑定 Sql,
2.动态 sql由原来的节点配置变成 OGNL表达式,
3.在一对一,一对多的时候引进了 association,在一对多的时候引入了 collection
节点,不过都是在 resultMap里面配置
**5.什么是 MyBatis的接口绑定,有什么好处**
答:
接口映射就是在 IBatis中任意定义接口,然后把接口里面的方法和 SQL语句绑定,
我们直接调用接口方法就可以,这样比起原来了 SqlSession提供的方法我们可以有更加灵
活的选择和设置
**6.接口绑定有几种实现方式,分别是怎么实现的?**
答: 接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上
@Select@Update等注解里面包含 Sql语句来绑定,另外一种就是通过 xml里面写 SQL来
绑定,
在这种情况下,要指定 xml映射文件里面的 namespace必须为接口的全路径名.
**7.什么情况下用注解绑定,什么情况下用 xml绑定**
答: 当 Sql语句比较简单时候,用注解绑定,
当 SQL语句比较复杂时候,用 xml绑定,一般用 xml绑定的比较多
37.MyBatis实现一对一有几种方式?具体怎么操作的
答:有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,
通过在 resultMap里面配置 association节点配置一对一的类就可以完成;
嵌套查询是先查一个表,根据这个表里面
的结果的外键 id,去再另外一个表里面查询数据,也是通过 association配置,但另外一个表
的查询通过 select属性配置
**8.MyBatis实现一对多有几种方式,怎么操作的**
答:有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,通过在 resultMap里面配
置 collection节点配置一对多的类就可以完成;
嵌套查询是先查一个表,根据这个表里面的
结果的外键 id,去再另外一个表里面查询数据,也是通过配置 collection,但另外一个表的
查询通过 select节点配置
**9.MyBatis里面的动态 Sql是怎么设定的?用什么语法?**
答:MyBatis里面的动态 Sql一般是通过 if节点来实现,通过 OGNL语法来实现,但是如果要写
的完
整,必须配合 where,trim节点,where节点是判断包含节点有内容就插入 where,否则不插
入,trim节点是用来判断如果动态语句是以 and或 or开始,那么会自动把这个 and或者 or


**10.IBatis和 MyBatis在核心处理类分别叫什么**
答:IBatis里面的核心处理类交 SqlMapClient,
MyBatis里面的核心处理类叫做 SqlSession
**11.IBatis和 MyBatis在细节上的不同有哪些**
答:在 sql里面变量命名有原来的#变量#变成了#{变量}
原来的$变量$变成了${变量},
原来在 sql节点里面的 class都换名字交 type
原来的 queryForObjectqueryForList变成了 selectOneselectList
原来的别名设置在映射文件里面放在了核心配置文件里
**12.讲下 MyBatis的缓存**
答:MyBatis的缓存分为一级缓存和二级缓存,
一级缓存放在 session里面,默认就有,二级缓存放在它的命名空间里,默认是打开的,
使用二级缓存属性类需要实现 Serializable序列化接
口(可用来保存对象的状态),可在它的映射文件中配置<cache/>
**13.MyBatis(IBatis)的好处是什么**
答:ibatis把 sql语句从 Java源程序中独立出来,
放在单独的 XML文件中编写,给程序的维护带来了很大便利。
ibatis封装了底层 JDBCAPI的调用细节,并能自动将结果集转换成 JavaBean对象,
大大简化了 Java数据库编程的重复工作。
因为 Ibatis需要程序员自己去编写 sql语句,
程序员可以结合数据库自身的特点灵活控制 sql语句,
因此能够实现比 hibernate等全自动 orm框架更高的查询效率,能够完成复杂查询
**14.MyBatis支持级联删除吗?**
答:不支持,只能写 sql语句关联删除。
**15.Mybatis优势**
1.MyBatis可以进行更为细致的 SQL优化,可以减少查询字段。
2.MyBatis容易掌握,而 Hibernate门槛较高。


**什么是 hribernate?**
答:用来简化 jdbc简化对数据库的访问,实现 java模型对象与数据库表之间的对应
**1.Hibernate工作原理及为什么要用?**
原理:
答:1.读取并解析配置文件
2.读取并解析映射信息,创建 SessionFactory
3.打开 Sesssion
4.创建事务 Transation
5.持久化操作
6.提交事务
7.关闭 Session
8.关闭 SesstionFactory
**2.为什么要用 Hribernate:**
答:1.对 JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2.Hibernate是一个基于 JDBC的主流持久化框架,是一个优秀的 ORM实现。他很大程度的
简化 DAO层的编码工作
3.hibernate使用 Java反射机制,而不是字节码增强程序来实现透明性。
4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关
系数据库,从一对一到多对多的各种复杂关系
**3.Hibernate优势**
1.Hibernate的 DAO层开发比 MyBatis简单,Mybatis需要维护 SQL和结果映射。
2.Hibernate对对象的维护和缓存要比 MyBatis好,对增删改查的对象的维护要方便。

Mybatis+hribernate总结

原文:https://www.cnblogs.com/WuJun-025/p/10533387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!