hibernate面试十大理论题.docVIP

  • 0
  • 0
  • 约4千字
  • 约 4页
  • 2021-01-28 发布于河北
  • 举报
Hibernate面试十大理论题 请简述hibernate开发程序的优势 Hibernate是一个数据持久化框架,它封装了jdbc简化了对数据库的相关操作,它是一个ORM(对象-关系映射模型)的实现,使面向对象程序能够更好的操作关系型数据库,它提供了丰富的查询方式(hql,本地sql,criteria)和多种数据加载机制以及数据缓存机制,能够提高程序的性能,减少系统的开销。 简述hibernate环境的搭建 导入hibernate相关的jar包 然后配置hibernate.cfg.xml文件 编写相关的实体映射文件(类→表)(属性→列名) 将实体映射文件加入到hibernate.cfg.xml中 简述hibernate配置实体映射文件的内容 根节点是hibernate-mapping,下面有class节点,class节点的name属性对应的是实体映射文件的路径,table属性是实体所对应的数据库表的表名。Class下面有id和property,id是配置数据库表中主键对应的类的属性,property是配置数据库表的其他列对应的类的属性,属性type是对应的类型,name对应是类的属性名。下面的column的属性name对应的是数据库的列名,id下面还有generator属性是主键的类型,其中常用的有assigned是自定义主键,identity是sql数据库自动生成,sequence是Oracle数据库自动生成,sequence还要配置param调用哪个序列。如果有多对一要配置many-to-one/many-to-one节点,一对多要配置set/set节点。 Hibernate的运行机制 根据Java类和数据库表的映射关系配置,依赖Java的反射机制,xml解析技术和jdbc完成对象与数据库之间数据的转换操作,以及对象的关系操作,通过解析配置文件将发出的数据库操作指令转换成为相应的sql语句来完成操作。 请列举hibernate核心借口和类,以及作用和常用方法 Hibernate的核心接口有: Configuration:配置并启动hibernate,它的configure()是读取映射信息到内存,buildSessionFactory方法是创建sessionFactory实例,把configuration对象包含的所有配置信息拷贝到sessionFactory缓存中。 Sessionfactory:负责初始化hibernate,它的openSession方法是负责创建session对象。 Session:负责执行持久化对象的CRUD操作,它的beginTransaction()方法是开始事务。它有save(保存),update(更新),delete(删除),get(查询),load(查询)等方法。 Transaction:负责事务的相关操作。 Query,SQLQuery,Criteria:负责执行各种数据库操作。它可以使用HQL语言或SQL语句两种表达方式。 核心类restrictions,它为criteria查询提供约束条件。 Hibernate操作持久化数据的基本步骤 读取并解析配置文件 Configuration cfg=new Configuration(); 读取并解析映射信息,创建sessionFactory对象 SessionFactory factory=cfg.buildSessionFactory(); 得到session Session session=factory.openFactory(); 开始事务(增删改必须,查可选) session.beginTransaction(); 数据库操作 Crud…. 提交事务(回滚事务) session.getTransaction().commit(); // session.getTransaction().rollback(); 关闭session session.close(); 使用3种方式查询A表中第5行到第10行的数据并按照C列排序 Configuration cfg=new Configuration(); SessionFactory factory=cfg.buildSessionFactory(); Session session=factory.openFactory(); try{ session.beginTransaction(); String hql=”from A order by C”; Query query=session.createQuery(hql); Query.setFirstResult(5); Query.setMaxResult(5); List list=query.list(); String

文档评论(0)

1亿VIP精品文档

相关文档