hibernate初学总结(2)

hibernate配置

1:hibernate.cfg.xml是Java类连接数据库的映射文件;

2:hibernate属性

(1)hibernate.dialect :这个属性使 Hibernate 应用为被选择的数据库生成适当的 SQL。

(2)hibernate.connection.driver_class:JDBC 驱动程序类

(3)hibernate.connection.url :数据库实例的 JDBC URL。
(4)hibernate.connection.username:数据库用户名

(5)hibernate.connection.password:数据库登录密码

(6)hibernate.connection.pool_size :限制在 Hibernate 应用数据库连接池中连接的数量。


//以下property中的配置为hibernate的必选配置
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>


引入orm映射文件例如:

<mapping resource="com/zhiyou100/hibernate/model/Account.hbm.xml"/>
<mapping resource="com/zhiyou100/hibernate/model/Speaker.hbm.xml"/>
<mapping resource="com/zhiyou100/hibernate/model/Video.hbm.xml"/>


(7)Session 的主要功能是为映射实体类的实例提供创建,读取和删除操作。这些实例可能在给定时间点时存在于以下三种状态之一:

  • 瞬时状态: 一种新的持久性实例,被 Hibernate 认为是瞬时的,它不与 Session 相关联,在数据库中没有与之关联的记录且无标识符值(OID)。(不关联session并且无OID)
  • 持久状态:可以将一个瞬时状态实例通过与一个 Session 关联的方式将其转化为持久状态实例。持久状态实例在数据库中没有与之关联的记录,有标识符值,并与一个 Session 关联。(关联session有OID)
  • 托管状态(游离状态):一旦关闭 Hibernate Session,持久状态实例将会成为托管状态实例。(不关联session有OID)

若 Session 实例的持久态类别是序列化的,则该 Session 实例是序列化的。一个典型的事务应该使用以下语法:



3:session接口提供的方法

Session session = HibernateUtil.getSession();


//session接口提供的方法:开始工作单位并返回关联事务对象
Transaction beginTransaction = session.beginTransaction();


//取消当前的查询执行
session.cancelQuery();


//完全清除该会话
session.clear();


//通过释放和清理JDBC连接以结束该会话
session.close();


//为给定的实体类或者是实体类的超类创建一个新的Criteria实例
session.createCriteria(Account.class);


//为给定的实体类名称创建一个新的criteria实例
session.createCriteria("account");


//为给定的HQL查询字符创建查询的新实例
session.createQuery("select * from acount");


//为给定的SQL查询字符串创建查询SQLQuery的新实例
session.createSQLQuery("select * from acount");


//从数据储存中删除持久化实例
session.delete("select * from acount");


//获取创建还会话的session工厂
SessionFactory sessionFactory = session.getSessionFactory();


//从数据库中重新读取给定实例的状态
session.refresh(as);


//获取与该session关联的事物实例
Transaction transaction = session.getTransaction();


//检查数据库是否连接
session.isConnected();


//检查数据库是否仍处于开启状态
session.isOpen();


//先分配一个生成的标识,以保证给定的瞬时状态实例
Serializable serializable = session.save(account);


//保存或更新给定的实例
session.saveOrUpdate(account);


//更新带有标识符且是给定的处于托管状态的
session.update(account);


//更新带有标识符且是给定的处于托管状态实例的持久化实例
session.update("select * from acount", account);

4:hibernate持久化类

hibernate的完整概念就是提取Java类中的属性值,并将其保存到数据库的表单当中,映射文件能够帮助hibernate确定如何从该类中取值,并将它们映射在表格和相关域中。

持久化类:其对象或实例被储存到数据表单中的Java类被称为持久化类;

持久化类的主要规则(但都不是硬性要求)有:

(1)所有将被持久化的Java类都需要一个默认的构造函数

(2)为了使对象能够在hibernate和数据库中能够被识别,每个类都要包含一个id,此属性映射到数据表中的主键列;

(3)所有将被持久化的属性都应该声明是private,并具有get和set方法;

(4)hibernate一个重要的特征是代理,它取决于该持久化类是处于非final,还是一个所有方法都声明为public的接口

(5)所有的类是不可扩展或者按EJB要求实现的一些特殊的类和接口;

 (EJB:简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值