JDBC&Hibernate
当数据库有大量用户来访问要采取什么技术解决
可以采用连接池;
什么是ORM
对象关系映射(Object Relational Mapping 简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的想象的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另一种形式。
Hibernate有哪5个核心接口。
Configuration接口:配置Hibernate,根据其启动Hibernate,创建SessionFactory对象;
SessionFactory接口:初始化Hibernate,充当数据储存源的代理;创建Session对象,SessionFactory是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;
Session接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个Session,是轻量级、一级缓存;
Transaction接口:管理事务;
Query和Criteria接口:执行数据库的查询。
在Hibernate中,在配置文件呈标题一对多,多对多的标签是什么
一对多的标签为<one-to-many>;
多对多的标签为<many-to-many>;
Hibernate的二级缓存是什么
SessionFactory的缓存为Hibernate的二级缓存;
Hibernate是如何管理事务的
Hibernate的事务实际上是底层的JDBC Transaction的封装或者是JTA Transaction的封装;默认情况下使用JDBC Transaction。
什么是重量级,什么是轻量级
轻量级是指它的创建和销毁不需要小号太多的资源,意味着可以在程序中经常的创建和销毁Session的对象;
重量级意味不能随意的创建和销毁它的实例,会占用很多的资源。
事务处理
Connection类中提供了三个事务处理方法:
setAutoCommit(Boolean autoCommit):设置是否自动提交事务,默认为自动提交事务,即为true,通过设置false禁止自动提交事务;
commit():提交事务;
rollback():回滚事务。
Java中访问数据库的步骤?Statement和PreparedStatement之间的区别?
Java中访问数据库的步骤:
1、注册驱动;
2、建立连接;
3、创建Statement;
4、执行SQL语句;
5、处理结果集(若SQL语句为查询语句);
6、关闭连接。
PreparedStatement被创建时即指定了SQL语句,通常用于执行多次结构相同的SQL语句。
JDBC、Hibernate分页怎样实现
Hibernate的分页
1 Query query = session.createQuery("from Student");
2 query.setFirstResult(firstResult);//设置每页开始的记录号
3 query.setMaxResult(resultNumber);//设置每页显示的记录数
4 Collection students = query.list();
JDBC的分页(根据不同的数据库才用不同的SQL分页语句)
例如Oracle中的SQL语句为:"SELECT * FROM (SELECT a.*, rownum r FROM TB_STUDENT) WHERE r between 2 and 10"
查询从记录号2到记录号10之间的所有记录;