Hibernate是一个开源的ORM框架,对JDBC进行了轻量级的封装,可以使用面向对象的思维操作数据库
轻量级的JavaEE应用的持久层解决方案,关系型数据库ORM框架
操作Java对象,通过映射的关联操作数据库的表结构(对象属性,数据库字段 )
ORM(Object Relational Mapping)对象关系映射
O:JavaBean
R:表结构
M:XML配置文件
通过操作对象的方式来操作数据库的表结构
Hibernate的优点:
1、对JDBC访问数据库的代码进行了封装,简化了DAO层的重复性代码
2、基于JDBC的主流映射框架,优秀的ORM实现,简化了DAO层的编码
3、性能好,轻量级框架,映射灵活,支持很多关系型数据库,从一对多到多对多的各种复杂关系
入门
1、导包
(1)MySQL驱动包
mysql-connector-java
(2)Hibernate包 lib/required下
antlr
dom4j
geronime-jta
hibernate-commons-annotations
hibernate-core
hibernate-jpa
jandex
javaassist
jboss-logging
(3)日志包
log4j(日志实现)
slf4j(接口)
slf4j-log4j(桥梁 映射--XML配置文件 )
2、建表和JavaBean
用包装类,属性和字段一致
需要提前建表,hibernate可以映射生成表结构,但是不能生成表
3、映射配置文件 hbm.xml
JavaBean有多少个就有多少映射文件hbm.xml,JavaBean和映射文件一一对应
(1)在JavaBean所在的包下创建映射的配置文件 类名.hbm.xml
xml配置文件引入约束,引入3.0,4.0不向下兼容
不能上网需要配置,关闭xml再次打开会有提示
(2)映射配置文件
<hibernate-mapping> <class name="com.guojie.domain.Customer" table="cst_customer"> <!-- 配置id,其中name是JavaBean的属性,column是表的字段 --> <id name="cst_id" column="cst_id"> <!-- 主键生成策略 --> <generator class="native" /> </id> <!-- 配置其他属性 --> <property name="cust_name" column="cust_name" /> </class> </hibernate-mapping>
4、核心配置文件cfg.xml
<hibernate-configuration> <!-- 一个数据库对应一个sessionFactory --> <session-factory> <!-- 必须配置的参数5个:4大参数,方言 --> <property name="hibernate.connection.driver.class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate-demo</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.username">root</property> <!-- 数据库方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 映入配置映射文件 映射配置文件右键--路径去掉com包之前的--> <mapping resource="com/guojie/domain/Customer.hbm.xml" /> </sessionFactory> </hibernamte-configuration>
5、入门程序