Configuration类

该类主要是读取配置文件,启动hibernate,并负责管理hibernate的配置信息,一个程序只创建一个Configuration对象。

Configuration类操作方法

创建Configuration类

Configuration config = new Configuration().getconfigure();

  调用该方法后会自动查找默认hibernate.cfg.xml文件

如果想指定目录下自定义的

<!--创建File对象-->
File file = new File(路径);
Configuration config =new Configuration().configure(file);

  还可以用于创建SessionFactory对象(后面写)

加载多个XML文件

Configuration config = new Configuration().addResource(xml文件);//加载多继续写.addResource

  调用setProperty方法实现动态配置属性值

SessionFactory接口

hibernate初始化,主要是生成session对象,而且一个程序只有一个SessionFactory

创建SessionFactory

Configuration config = new Configuration().getconfigure();
SessionFactory sessionFactory = config。buildSessionFactory();

  SessionFactory相关配置(主要是数据库配置,下面列出一些,也就是hibernate.cfg.xml配置文件)

    <session-factory>
<!-- 配置数据库方言 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 配置数据库连接URL -->
<property name="connection.url">
jdbc:mysql://localhost:3306/user
</property>
<!-- 配置数据库用户名 -->
<property name="connection.username">root</property>
<!-- 配置数据库密码 -->
<property name="connection.password">123456</property>
<!-- 配置数据库JDBC驱动 -->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property> <property name="myeclipse.connection.profile">driver</property>
<!-- 底部输出sql语句 -->
<property name="show_sql">true</property>
<!-- 底部输出sql语句格式化 -->
<property name="hibernate.format_sql">true</property> <!-- 把配置文件导入核心文件 ,后面会写到 -->
<mapping resource="cn/dto/User.hbm.xml" /> </session-factory>

  ps:Session是否是线程安全的http://blog.sina.com.cn/s/blog_72c948d701017yb5.html

Session接口

创建seesion

Session session = sessionFacctory.openSession();

生命周期:以Transaction对象(事务)的事务开始和结束为边界

seesion对象提供了一系列与持久化相关操作。

save()方法

将对象加入缓存中,同时标注为持久态(持久态,托管态,瞬时态)

根据映射文件中配置信息生成实体类对象的唯一标识

生成计划执行的insert语句(但并不会执行insert语句,要等事务提交后)

具体用法:

User user =new User();
user.setUsername("durui"); //瞬时态
Session session = sessionFacctory.openSession(); //托管态
Transaction tx = session .beginTransaction();//开启事物
session.save(user) //持久态
tx.commit();//提交事务
session.close();

  update()方法

将对象加入缓存中,同时标注为持久态

生成计划执行的update语句

User user =new User();
user.setUsername("durui");
Session session = sessionFacctory.openSession();
Transaction tx = session .beginTransaction();//开启事物
session.update(user)
tx.commit();//提交事务
session.close();

  saveOrUpdate()方法

可以根据不同情况对数据库执行insert或者update操作

delete()对象

删除实例所对应的数据库记录(必须设置主键)

User user =new User();
user.setId("1");
Session session = sessionFacctory.openSession();
Transaction tx = session .beginTransaction();//开启事物
session.delete(user)
tx.commit();//提交事务
session.close();

  get()方法

通过标识符得到指定类的持久化对象,若没有返回空

Session session = sessionFacctory.openSession();
Transaction tx = session .beginTransaction();//开启事物
User user = (User)session.get(User.class,"1");//强制转换
system.out.println(user.getId());
tx.commit();
seesion.close();

  load()方法

和get()方法一样,但对象必须存在,否则产生异常

  contains()方法

判断一个实例是否与当前的session对象相关,也可以判断是否为持久态

  evict()方法

管理session缓存

  clear()方法

清空session的缓存

  createQuery()方法(下节)

用于建立Query查询接口实例

Query query = session。createQuery();

  createCriteria()方法(下节)

建立Criteria查询接口的实例

Criteria crit = seesion.createCriteria();

  createSQLQuery()方法

从字面意思就知道是sql查询

List users = session。createSQLQuery(sql语句)。list();

  createFilter()方法

用于一个持久化集合或者数组特殊查询

Hibernate学习笔记(4)---hibernate的核心接口的更多相关文章

  1. hibernate学习笔记之一 hibernate简介

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架 hibernate可以自动生成SQL语句,自 ...

  2. hibernate学习笔记之四 Hibernate的增删改查

    采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...

  3. Hibernate学习笔记(六) — Hibernate的二级缓存

    我们知道hibernate的一级缓存是将数据缓存到了session中从而降低与数据库的交互.那么二级缓存呢? 一.应用场合 比方.在12306购票时.须要选择出发地与目的地,假设每点一次都与数据库交互 ...

  4. Hibernate学习笔记(6)---Criteria接口

    Criteria接口 Criteria查询通过面相对向的设计,将数据查询条件封装为一个对象.在hibernate执行时会把criteria指定的查询恢复相应的sql语句. 条件查询 Criteria ...

  5. Hibernate学习笔记(5)---Query接口

    Hibernate中具有三种检索方式(HQL,QBC,SQL) Query接口 一个查询接口,用于向数据库中查询对象.并控制执行查询的过程.Query接口内封装了一个HQL查询语句. 举个栗子 //查 ...

  6. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  7. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  8. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  9. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  10. Hibernate学习一:Hibernate注解CascadeType

    http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...

随机推荐

  1. ssm开发使用redis作为缓存,使用步骤

    1.关于spring配置文件中对于redis的配置 <!-- redis配置 --> <bean id="jedisPoolConfig" class=" ...

  2. Cs Round#56 D Find Path Union

    题意:有一棵如下的完全二叉树,求所有给定结点到根节点的路径的并有多少条边. 一开始联想到线段树,发现结点的排布很像线段树的标号.于是模仿线段树敲了一下,交上去发现3个点MLE了... 无心优化,跑去看 ...

  3. Python的用户交互程序及格式化输出

    1.  用户输入 在Python 3 中,用户输入用input()函数即可实现用户交互程序. 例如,我们根据程序提示输入用户名和密码,并且打印输入的信息. 2. 字符串格式化输出 例如,我们根据程序提 ...

  4. loadrunner 录制TCP协议脚本操作

    测试TCP协议的项目,涉及到登陆.发送实时数据.指令.登出等,直接写报文工作量太大,所以需要录制报文. 操作方法如下: 1.启动服务端程序 2.使用winsocket协议 3.选择应用程序 4.录制选 ...

  5. 使用CEF的JSON解析功能

    Cef提供了JSON解析功能,在cef_parser.h文件内有三个JSON相关的方法: CefParseJSON CefParseJSONAndReturnError CefWriteJSON 以最 ...

  6. Hadoop之SequenceFile

    Hadoop序列化文件SequenceFile能够用于解决大量小文件(所谓小文件:泛指小于black大小的文件)问题,SequenceFile是Hadoop API提供的一种二进制文件支持.这样的二进 ...

  7. HDU 4162 Shape Number(字符串,最小表示法)

    HDU 4162 题意: 给一个数字串(length <= 300,000),数字由0~7构成,求出一阶差分码,然后输出与该差分码循环同构的最小字典序差分码. 思路: 第一步是将差分码求出:s[ ...

  8. MooseFS代码分析(一)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  9. Python笔记·第三章—— 逻辑运算

    一.逻辑运算符的种类及优先级 ▷逻辑运算符包括 not and or  ▷他们的优先级是 () > not > and > or 二.普通逻辑运算 ▷A and B --->  ...

  10. 如何处理使用js兼容所有浏览器的问题

    首先:如何处理兼容问题 1.如果两个都是属性,用逻辑||做兼容 2.如果有一个是方法,用三元做兼容 3.如果是多个属性或方法,封装函数做兼容 分享两个小知识点: 1.取消拖拽的默认行为: docume ...