hibernate基础认知

Hibernate是一种orm(对象关系映射),持久层框架,对jdbc的一种轻量级封装。
Hibernate让在编写关于数据库部分时,可以不用关心具体是哪种数据库,通用一种和数据库连接的方法。Hibernate可以用在j2ee和j2se中,struts只能用在j2ee(web)中。

数据持久层对jdbc进行了封装,为上一层的业务逻辑层提供了大量的API。
configuration sessionfactory session transaction

三个重点:
1.hibernate的api
2.Hibernate.cfg.xml核心配置文件,此核心文件还要管理对象关系映射文件
3.对象关系映射文件

三个开发方式:
1.从domain object->mapping->db
2.DB(数据库建表)开始,用工具生成domain object(对象模型)和mapping(映射)
3.从映射文件开始

Domain(javabean/pojo)对象名称是创建的数据库表名称的首字母大写。
Domain
1)有一个主键
2)有其他的实例域(private)和setget方法
3)一定有一个无参数的构造器(用于hibernate的框架反射机制)
4)实例域建议用包中类来定义(int为Integar)

关系映射文件
用于指定domain对象和表的映射关系,一般命名为:domain对象名.hbm.xml。一般放在和domain对象同一个文件夹下。

对象关系映射文件Domain.hbm.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping  package=”com.quinn.domain”>
<class name=”Employee” table=”employee”>
//id用来指定主键
<id name=”id” column=”id”>
//generator是用来指定主键的生成策略
<generator  class=”sequence”>
<param name=”sequence”>emp</param>
</generator>
</id>
//配置其他的属性
<property  name=”name”>
<column name=”name” not-null=”false” ...>
</property>
</class>

hibernate.cfg.xml文件用于配置连接的数据库类型和用户名、密码、URL…等等内容,该文件的名字一般不修改

Hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
//这是hibernate的核心文件,它的主要作用包括配置连接数据库的类型
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orclsp</property>
//配置使用中driver
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>
        <property name="connection.pool_size">2</property>
//方言dialect,用于明确的告诉hibernate现在连接的是哪一种数据库
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
//Enable Hibernate's current session context,
//使用这个可以使用getCurrentSession()函数 
        <property name="current_session_context_class">thread</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
//用于指定hibernate.cfg.xml文件所管理的对象映射文件 
        <mapping resource="com/quinn/domain/employee.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

数据持久层对jdbc进行了封装,为上一层的业务逻辑层提供了大量的API。
configuration sessionfactory session transaction

//Configuration创建Configuration对象,用对象读取配置文件hibernate.cfg.xml
Configuration configuration = new Configuration().configure();
//Sessionfactory是一个接口,会话工程,单态
SessionFactory sessionFactory = configuration.bulidSessionFactory();
//Session创建session会话,和数据库的对话
Session session = sessionFactory.openSession();
//Transaction在hibernate中,在增加、删除、修改的时候要用事务提交
Transaction transaction = session.beginTransaction();
//添加一个雇员
Employee employee = new Employee();
Employee.SetName(“quinn”);
...
Session.save(employee);//相当于在mysql语句中的insert
Transaction.commit();//事务性提交
Session.close();

用构造函数和创建工具类的方法来快速方便的使用hibernate来对数据库进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值