JavaWeb学习之Hibernate框架(一)
一、框架是什么?
1、框架是用来提高开发效率的;
2、框架封装好了一些功能,我们需要使用这些功能时,调用即可,不需要再手动实现;
3、框架可以理解为一个半成品的项目,只需要懂得如何驾驭这些功能即可。
二、hibernate框架是什么?
三、hibernate框架的好处
操作数据库的时候,可以以面向对象的方式来完成,不需要书写SQL语句
四、hibernate是一款orm框架
orm:object relational mapping 对象关系映射
数据库中的一张表就代表着一个实体类,一个实体类就代表着一个对象,那么对象关系映射就是把对象与数据库中的字段一一对应。
orm分4级
hibernate属于4级:完全面向对象操作数据库
mybatis属于2级
dbutils属于1级
五、hibernate框架的搭建
1、导包
驱动包
2、创建数据库,准备表、实体
3、书写orm元数据(对象与表的映射配置文件)
导入约束:
实体:
orm元数据:将实体中的所有成员都一一配置
4、书写配置文件
<?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> <!-- #hibernate.dialect org.hibernate.dialect.MySQLDialect #hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect #hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect #hibernate.connection.driver_class com.mysql.jdbc.Driver #hibernate.connection.url jdbc:mysql:///test #hibernate.connection.username gavin #hibernate.connection.password--> <!--必须配置的5条 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///crm?useUnicode=true&characterEncoding=UTF8</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!--可选配置 #hibernate.show_sql true 自动打印sql在控制台 #hibernate.format_sql true 规范格式化打印在控制台的sql--> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <!-- 配置hibernate操作数据库隔离级别 --> <!-- #hibernate.connection.isolation 4 --> <property name="hibernate.connection.isolation">4</property> <!-- 获得与当前线程绑定session对象时必须要配置的 --> <property name="hibernate.current_session_context_class">thread</property> <!-- 如果没有表就会自动生成表,如果有就会自动更新表 #hibernate.hbm2ddl.auto update --> <property name="hibernate.hbm2ddl.auto">update</property> <mapping resource="com/domain/Customer.hbm.xml"/> <mapping resource="com/domain/LinkMan.hbm.xml"/> <mapping resource="com/domain/User.hbm.xml"/> <mapping resource="com/domain/Role.hbm.xml"/> </session-factory> </hibernate-configuration>
5、书写代码测试
配置文件详解
orm元数据
根元素
class元素
id元素
property元素
hibernate主配置文件
必须要配置的属性(5个)
可选的属性配置(3个)
元数据引入配置
单元测试代码
package com.domain; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; public class Demo { @Test public void saveCustomer(){ Configuration conf=new Configuration(); conf.configure(); //单例模式 例子 //工厂模式 例子 //代理模式 例子 //创建session的工厂对象 SessionFactory sessionFactory=conf.buildSessionFactory(); //会话(数据库 Connection) Session session=sessionFactory.openSession(); //开启事务 Transaction tx=session.beginTransaction(); //保存客户信息 Customer c=new Customer(); c.setCust_name("aaa"); session.save(c); //提交事务 tx.commit(); //关闭session session.close(); //关闭sessionFactory sessionFactory.close(); } }