Hibernate学习总结
花了几天的时间把Hibernate学习了一下,在这里做一个总结,也算是对学习内容的一个梳理,如果能帮助到看这篇文章的童鞋,那自然是最好不过了。
用java语言去操作数据库,javaAPI自带的有JDBC,但是,JDBC无法直接面向对象,弊端是:
1.开发效率低2.代码冗余3.重复性工作多Hibernate对JDBC进行了非常轻量级的对象封装,使我们能够用面向对象的思维去操作数据库。
一、Hibernate核心接口和类
Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。
Session接口: 用来执行执行被持久化对象的CRUD(增删改查)操作.
SessionFactory接口: SessionFactory接口负责初始化HibernateSessionFactory是重量级的,所以一个项目通常只需要一个SessionFactory了,然后由SessionFactory创建Session对象。
Transaction接口:用来处理事务的接口。
Configuration类:Configuration对象用来配置和引导Hibernate,一个Hibernat
e应用使用一个Configuration实例来指定主 配置文件的位置,然后创建会话工厂。
二、Hibernate使用前的准备
使用Hibernate前需要搭建项目框架编写hibernate配置文件、实体映射文件。
1)hibernate配置文件默认文件名为“hibernate.cfg.xml”。配置如下
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库连接URL --> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property> <!-- 数据库用户名 --> <property name="connection.username">oa</property> <!-- 数据库密码 --> <property name="connection.password">oa123</property> <!-- 数据库JDBC驱动类名 --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <!-- 数据库方言 --> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- ddl语句自动建表 --> <property name="hbm2ddl.auto">none</property> <!-- 是否输出Hibernate生成的SQL语句,开发阶段一般需要开启 --> <property name="show_sql">true</property> <!-- 是否对输出SQL进行格式化 --> <property name="format_sql">true</property> <!-- 连接池配置 --> <property name="hibernate.connection.provider_class"> or