Hibernate学习笔记(4)---hibernate的核心接口
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的核心接口的更多相关文章
- hibernate学习笔记之一 hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架 hibernate可以自动生成SQL语句,自 ...
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- Hibernate学习笔记(六) — Hibernate的二级缓存
我们知道hibernate的一级缓存是将数据缓存到了session中从而降低与数据库的交互.那么二级缓存呢? 一.应用场合 比方.在12306购票时.须要选择出发地与目的地,假设每点一次都与数据库交互 ...
- Hibernate学习笔记(6)---Criteria接口
Criteria接口 Criteria查询通过面相对向的设计,将数据查询条件封装为一个对象.在hibernate执行时会把criteria指定的查询恢复相应的sql语句. 条件查询 Criteria ...
- Hibernate学习笔记(5)---Query接口
Hibernate中具有三种检索方式(HQL,QBC,SQL) Query接口 一个查询接口,用于向数据库中查询对象.并控制执行查询的过程.Query接口内封装了一个HQL查询语句. 举个栗子 //查 ...
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Hibernate学习一:Hibernate注解CascadeType
http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...
随机推荐
- Mybatis框架解析之Builder解析
首先我们从builder这个类入手,首先我们注意到BaseBuilder,其实它的本质上市一个抽象类,它从本质上抽象出了Builder的一切,我猜想这里一定使用了建造者模式,但是这个抽象类里面居然没有 ...
- poj 2271HTML
poj2271 HTML Description If you ever tried to read a html document on a Macintosh, you know how hard ...
- Python 学习(1) 简单的小爬虫
最近抽空学了两天的Python,基础知识都看完了,正好想申请个联通日租卡,就花了2小时写了个小爬虫,爬一下联通日租卡的申请页面,看有没有好记一点的手机号~ 人工挑眼都挑花了. 用的IDE是PyCh ...
- 中颖内带LED资源驱动代码
//上一篇写了LCD驱动,本篇写下LED驱动 //DISPCON 最高位为1时, 选择LED驱动,LCD驱动无效 最高位为0时, 选择LCD驱动.LED驱动无效 void Sh79fLed_Init( ...
- 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 ...
- linux(ubuntu) 搭建java程序运行环境
一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...
- 带你深度解析Maven
一.What`s Maven? Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具,简单的说 ...
- mybatis的#{}占位符和${}拼接符的区别
#{}占位符:占位 如果传入的是基本类型,那么#{}中的变量名称可以随意写 如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性- ${}拼接符:字符串原样拼接 如果 ...
- 腾讯WeTest《2017中国移动游戏质量白皮书》开放预约,再为国内手游把把脉
产品为王,质量先行.如果说2016年是爆款手游相继崛起的一年,那么2017年则更像是打磨精品.建立生态的高手切磋之年.守住一个游戏的质量生命线,方能建立健康生态,方能在如火如荼的行业竞争中角逐到最后. ...
- 《编程珠玑(第2版)》【PDF】下载
<编程珠玑(第2版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382225 内容简介 书的内容围绕程序设计人员面对的一系列实 ...