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. Mybatis框架解析之Builder解析

    首先我们从builder这个类入手,首先我们注意到BaseBuilder,其实它的本质上市一个抽象类,它从本质上抽象出了Builder的一切,我猜想这里一定使用了建造者模式,但是这个抽象类里面居然没有 ...

  2. poj 2271HTML

    poj2271 HTML Description If you ever tried to read a html document on a Macintosh, you know how hard ...

  3. Python 学习(1) 简单的小爬虫

    最近抽空学了两天的Python,基础知识都看完了,正好想申请个联通日租卡,就花了2小时写了个小爬虫,爬一下联通日租卡的申请页面,看有没有好记一点的手机号~   人工挑眼都挑花了. 用的IDE是PyCh ...

  4. 中颖内带LED资源驱动代码

    //上一篇写了LCD驱动,本篇写下LED驱动 //DISPCON 最高位为1时, 选择LED驱动,LCD驱动无效 最高位为0时, 选择LCD驱动.LED驱动无效 void Sh79fLed_Init( ...

  5. HTTP Status 500 - Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement

    1.什么操作出现:当我在项目中添加产品或者修改时,浏览器出现HTTP Status 500 - Request processing failed; nested exception is org.h ...

  6. linux(ubuntu) 搭建java程序运行环境

    一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...

  7. 带你深度解析Maven

    一.What`s Maven? Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具,简单的说 ...

  8. mybatis的#{}占位符和${}拼接符的区别

    #{}占位符:占位 如果传入的是基本类型,那么#{}中的变量名称可以随意写 如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性- ${}拼接符:字符串原样拼接 如果 ...

  9. 腾讯WeTest《2017中国移动游戏质量白皮书》开放预约,再为国内手游把把脉

    产品为王,质量先行.如果说2016年是爆款手游相继崛起的一年,那么2017年则更像是打磨精品.建立生态的高手切磋之年.守住一个游戏的质量生命线,方能建立健康生态,方能在如火如荼的行业竞争中角逐到最后. ...

  10. 《编程珠玑(第2版)》【PDF】下载

    <编程珠玑(第2版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382225 内容简介 书的内容围绕程序设计人员面对的一系列实 ...