Hibernate的详细入门

本文介绍了Hibernate,一个开源的对象关系映射框架,通过详细解析Session缓存的作用、清理机制和一级缓存,阐述了Hibernate如何减少数据库访问并保持数据同步。此外,还探讨了Hibernate对象的不同状态、核心配置文件的扩展以及C3P0数据库连接池的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate

  1. 什么是hibernate

Hibernate是一个开放源代码的对象关系映射框架,他对JDBC进行了非常轻量级的对象封装,他对POJO(简单java对象)与数据库表建立映射关系, 是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得java程序员可以随心所欲的使用对象编程思想来操作数据库,hibernate 可以应用在任何使用JDBC的场合,既可以在java的客户端程序使用,也可以在Servlet或者jsp的Web应用中使用

安装hibernate的jboss tools插件:打开eclipse---help----ecilpse Marketplace----搜索jboss tools----选择JBoss tools 4.5.3.Final----选择安装(安装的时间只 选择hibernate tools工具就可以了)------然后Confirm-----选择I accept terms of the licens agreements-----然后finsh

  1. 第一个hibernate程序
  1. 创建工程(maven工程)
  2. 导入hibernate的jar包,导入SQL的驱动包,导入junit测试包

<dependencies>

  <!-- hibernate的jar包 -->

   <dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-core</artifactId>

    <version>5.2.17.Final</version>

</dependency>

   <dependency>

   <groupId>mysql</groupId>

   <artifactId>mysql-connector-java</artifactId>

   <version>5.1.26</version>

   </dependency>

   <dependency>

   <groupId>junit</groupId>

   <artifactId>junit</artifactId>

   <version>4.10</version>

   </dependency>

  </dependencies>

 

  1. 创建hibernate的hibernate.cfg.xml核心配置文件,在resources目录下,名字默认就行,选择和导入jar包相对应的版本

<?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>

  <!-- 连接数据库的基本信息 -->

  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernateTest</property>

  <property name="hibernate.connection.username">root</property>

  <property name="hibernate.connection.password">root</property>

  <!-- 数据库方言,是否显示sql语句 -->

  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

  <!-- 是否显示sql语句 -->

  <property name="hibernate.show_sql">true</property>

  <!-- 是否格式化sql语句 -->

  <property name="hibernate.format_sql">true</property>

  <!--

  create代表每一次都会创建表,并且把旧表删除,每次都会是一张新表

  crate-drop代表每次hibernate加载的时间都会创建表,但是sessionFactory一关闭的话表就会自动删除

  update是最常用的属性,第一次hibernate加载的时间会根据实体类自动的生成表,(前提是创建好了数据库)以后加载hibernate的时间根据实体类自动更新表结构

  validate代表每次hibernate加载的时间,验证创建数据库表结构,只会和数据库的表进行比较,不会创建新表,但是会插入新值

   -->

  <property name="hibernate.hbm2ddl.auto">update</property>

  <!-- 配置映射文件 ORM映射关系 -->

  <mapping resource="hibernate/test/Student.hbm.xml"/>

   </session-factory>

</hibernate-configuration>

 

  1. 创建实体类,属性名和数据库列名一一对应

package hibernate.test;

 

public class Student {

private int id;

private String name;

private int age;

private double height;

public Student(String name, int age, double height) {

super();

this.name = name;

this.age = age;

this.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值