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. javaweb学习总结(五)——Servlet开发(一)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun ...

  2. PHP 数据库连接池实现

    摘要 xml 读取配置文件 简易方式 常规方式 PHP解析XML 配置文件 解析 数据库连接池 測试 申请过多时拒绝请求 已满后拒绝放入 总结 摘要 之前总是以脚本面向过程的方式写PHP代码,所以非常 ...

  3. linux命令的排列、替换与别名

    命令的排列; 1.使用";" 命令语法: 命令1;命令2 当运行该命令时,无论命令1是否出错.接下来就运行命令2 2.使用"&&" 命令语法:命 ...

  4. ABP入门系列(6)——定义导航菜单

    ABP入门系列目录--学习Abp框架之实操演练 完成了增删改查以及页面展示,这一节我们来为任务清单添加[导航菜单]. 在以往的项目中,大家可能会手动在layout页面中添加一个a标签来新增导航菜单,这 ...

  5. Java Annotation认知(包括框架图、详细介绍、示例说明)(转)

    本文转自:http://www.cnblogs.com/skywang12345/p/3344137.html 网上很多关于Java Annotation的文章,看得人眼花缭乱.Java Annota ...

  6. CentOS6.5安装MySQL5.6

    CentOS6.5安装MySQL5.6,开放防火墙3306端口,允许其他主机使用root账户密码访问MySQL数据库 查看操作系统相关信息 ** 该查看方法只适用于CentOS6.5 (lsb_rel ...

  7. 机器学习 - pycharm, tensorflow集成篇

    继续上篇的pyspark集成后,我们再来看看当今热的不得了的tensorflow是如何继承进pycharm环境的 参考: http://blog.csdn.net/include1224/articl ...

  8. 开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面

    NanUI是什么 NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron). ...

  9. restfull软件架构风格

    概念:restfull是一种软件架构风格,实现该风格不需导jar包,但要使用@PathVariable注解:特点:没有参数,没有扩展名优势: 1.安全 2.简洁高效 3.容易被搜索引擎所收录 如何利用 ...

  10. iOS控制器跳转动画

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 MyViewController *myVC = [[MyViewController alloc]init];  //创建动画  C ...