Hibernete学习笔记

What

  • ORM,Object Relational Mapping,对象关系映射。指的是将一个Java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表。类的属性对应表的字段。
  • JPA,Java Persistence API,用于对象持久化的 API
  • Hibernate是一种ORM框架,是一种JPA实现
  • 特点:全自动(写SQL不方便),全映射(映射整个bean)

Why

  • 使用 JDBC 操作数据库时,SQL 语句都被编写在代码里面(硬编码),需要调整就得修改源码,灵活性差
  • 每写一条操作都要创建一个 connection,十分消耗资源
  • 对查询结果的解析、对参数的设置等,都与 SQL 语句有关,牵一发而动全身,耦合度极高

开发步骤

  1. 导入jar包
  2. 创建表(可省略)
  3. 创建类
  4. 创建映射文件,文件放在实体类同级目录下

xml配置方式:Customer.hbm.xml



<hibernate-mapping>
	
	<class name="com.itheima.hibernate.demo1.Customer" table="cst_customer">
		
		<id name="cust_id" column="cust_id" >
			<generator class="native"/>
		id>
		
		
		<property name="cust_name" column="cust_name" length="32" />
		<property name="cust_source" column="cust_source" length="32"/>
		<property name="cust_industry" column="cust_industry"/>
		<property name="cust_level" column="cust_level"/>
		<property name="cust_phone" column="cust_phone"/>
		<property name="cust_mobile" column="cust_mobile"/>
	class>
hibernate-mapping>

注解配置方式
Hibernete学习笔记_第1张图片
5. 创建核心配置文件,保存在应用程序的类路径的根目录里

hibernate.cfg.xml



<hibernate-configuration>
	<session-factory>
		
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driverproperty>
		<property name="hibernate.connection.url">jdbc:mysql:///testproperty>
		<property name="hibernate.connection.username">rootproperty>
		<property name="hibernate.connection.password">abcproperty>
		
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialectproperty>
		
		
		
		<property name="hibernate.show_sql">trueproperty>
		
		<property name="hibernate.format_sql">trueproperty>
		
		<property name="hibernate.hbm2ddl.auto">updateproperty>
		
		
		<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProviderproperty>
		
		<property name="c3p0.min_size">5property>
		
		<property name="c3p0.max_size">20property>
		
		<property name="c3p0.timeout">120property>
		 
		<property name="c3p0.idle_test_period">3000property>
		
		<mapping resource="com/lee/demo/Customer.hbm.xml"/>
	session-factory>
hibernate-configuration>

Hibernete学习笔记_第2张图片
6. 代码框架

// 加载核心配置,加载映射文件,创建Hibernate
Configuration configuration = new Configuration().configure();

// 初始化Hibernate,允许实例化一个会话对象,用于与数据库的物理连接
// SessionFactory 是一个线程安全对象并由应用程序所有的线程所使用
// SessionFactory 是一个重量级对象所以通常它都是在应用程序启动时创造然后留存为以后使用
SessionFactory sessionFactory = configuration.buildSessionFactory();

// 持久化对象的CRUD操作
// Session 对象不应该长时间保持开启状态因为它们通常情况下并非线程安全,并且它们应该按照所需创造和销毁
Session session = sessionFactory.openSession();

// 开启事务
session .beginTransaction();

// CURD

// 提交事务
transaction.commit();
// 关闭会话
session.close();

Hibernete学习笔记_第3张图片

其他

  • List item
  • 事务
  • 延迟加载
  • 级联
  • 缓存
  • 分页
  • 连接池

参考教程:https://how2j.cn/k/hibernate/hibernate-tutorial/31.html

你可能感兴趣的:(Web开发,hibernate,java)