智联,boss,拉勾这个三个软件个人推荐还是boss好使
一.谈谈hibernate 与 mybatis的区别
1.mybatis开发社区没有hibernate开发社区活跃2.mybatis的移植性没有hibernate好
3.mybatis的二次缓存机制没有hibernate的二次缓存机制效果好,在出现脏读
4.hql语句需要查询所有的数据,而sql语句可以根据自己不必查询出所有的字段
5.mybatis相对与hibernate易于掌握
相同点
1.都是orm架构系统,都是轻量级的
2.都支持jdbc和jta事物
3.都是通过sessionfactoryBuild配置的xml文件生成sessionfactory,然后有sessionfactory生成session,
最后又session来加载事物和sql语句
问题扩展
数据库的事物
脏读 读未提交
不可重复读 在一个事物中多次查询的结果不同
幻读 多个事物对一个对象进行操作,一个事物影响了另一个事物
二.谈谈对sql 优化
1.在大量数据下避免全表扫描,使用索引2.where 后面条件按过滤量排序
3.使用exist代替in
4.不要写select * 的语句,选择你所需的字段
5.多表联查请使用别名,并把别名前缀到每列上面
6.in,exists的相关自查询可以改为连接查询
7.临时表
临时表
会话级临时表 各个不同的session中临时表数据不共享,session结束清除临时表数据
事务集临时表 不管事务是否commit,rollback都会将临时表中的数据清除
临时表缺点
不支持lob对象,不支持主外键关系
解决方式
1.以创建常规表的形式创建临时表,将主键设为sessionid<nummber>
2.写一个用户注销触发器,在用户会话结束的时候删除本次会话的所有数据
临时表优点
临时表 顾名思义 存储临时数据
有两中特性 会话的临时 事物的临时
8.索引
索引分类:
唯一索引,单行索引,多行索引,函数索引,域索引
索引的优点
加快查询效率
索引缺点
添加,删除,修改操作耗时增长
5.java实例化的五种方式
1.new
2.工厂方法
3.反射手段Class.forName("class").newInstance()
4.通过i/o流
5.调用对象的Clone()方法
6.spring 生命周期
1.bean 的配置
2.bean 的实例化 反射技术
3.bean 调用
有三种方式实现bean的调用
1.beanfactory
2.applicationContext
3.beanwrapper wrapper 报装器
4.bean 的销毁