Hibernate常用api以及增删改查
- Configuration类:作用:用于获得框架的信息,构建将会话工厂。
//1.创建一个Configuration的对象
Configuration config=new Configuration();
//2.读取默认路径下的hibernate.cfg.xml配置文件
config.configure();
1.2 获取指定的配置文件
//1.创建一个Configuration的对象
Configuration config=new Configuration();
//2.读取默认路径下的hibernate.cfg.xml配置文件
config.configure("config.xml");
//2.获得Session
public static Session getSession(){
return sessionFactory.openSession();
}
方法名
|
作用
|
save()
|
保存数据库到数据库
|
saveOrUpdate()
|
如果数据库没有记录就保存,如果有记录就更新,重要的判断是OID是否相同,OID(Object ID)就是在配置文件配置为<id>属性。
|
delete()
|
用于通过OID删除数据库记录
|
update()
|
用于通过OID更新数据的记录
|
load()
|
用于通过OID,获得一条记录,有延迟
|
get()
|
用于通过OID,获得一条记录,无延迟
|
beginTransaction()
|
打开并且启动事务(增删改操作必须,)
|
getTransation()
|
打开了事务,没有开启。
|
clear()
|
清除session所有对象的持久态。
|
close()
|
关闭session对象
|
evit()
|
清除指定的对象的持久态
|
createQuery()
|
获得使用HQL查询的Query对象
|
createSQLQuery()
|
获得使用SQL查询的Query对象
|
createCriteria()
|
获得标准查询的Criteria对象
|
//增加操作
@Test
public void save() {
//获取session
Session session = HibernateUtils.getSession();
//打开事务
Transaction transaction = session.beginTransaction();
Student student = new Student();
student.setStu_name("张三"); //进行增加操作
session.save(student);
session.close();
}
5.2 删除的代码
//删除
@Test
public void delete() { Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();
Student student = new Student();
student.setStu_id(1L);
session.delete(student); transaction.commit();
session.close();
}
//更新
@Test
public void update() {
Session session = HibernateUtils.getSession(); Transaction transaction = session.beginTransaction(); Student student = new Student();
student.setStu_id(4L);
student.setStu_name("赵六");
session.update(student);
transaction.commit();
session.close(); }
@Test
public void get() { //查询数据都没有操作数据库,不用开启事务
Session session = HibernateUtils.getSession();
Student student = session.get(Student.class, 4L);
System.out.println(student.getStu_name());
session.close();
System.out.println(student.getStu_name()); }
Load方法进行查找
@Test
public void load() { //查询数据都没有操作数据库,不用开启事务
Session session = HibernateUtils.getSession();
Student student = session.load(Student.class, 4L);
System.out.println(student.getStu_name());
session.close(); }
session.close();
System.out.println(student.getStu_name());
正确
System.out.println(student.getStu_name());
session.close(); 错误
session.close();
System.out.println(student.getStu_name());
<!-- 设置load直接查询。设置class标签的lazy为false -->
<class name="com.sxt.entity.Student" table="tb_student" lazy="false">
Hibernate常用api以及增删改查的更多相关文章
- hibernate关联对象的增删改查------查
本篇博客是之前博客hibernate关联对象的增删改查------查 的后继,本篇代码的设定都在前文已经写好,因此读这篇之前,请先移步上一篇博客 //代码片5 SessionFactory sessi ...
- 05_Elasticsearch 单模式下API的增删改查操作
05_Elasticsearch 单模式下API的增删改查操作 安装marvel 插件: zjtest7-redis:/usr/local/elasticsearch-2.3.4# bin/plugi ...
- Elasticsearch 单模式下API的增删改查操作
<pre name="code" class="html">Elasticsearch 单模式下API的增删改查操作 http://192.168. ...
- zkCli的使用 常用的节点增删改查命令用法
zkCli的使用 常用的节点增删改查命令用法 1. 建立会话 命令格式:zkCli.sh -timeout 0 -r -server ip:port ./zkCli.sh -server -time ...
- Hadoop基础-HDFS的API实现增删改查
Hadoop基础-HDFS的API实现增删改查 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客开发IDE使用的是Idea,如果没有安装Idea软件的可以去下载安装,如何安装 ...
- Elasticsearch学习系列之单模式下API的增删改查操作
这里我们通过Elasticsearch的marvel插件实现单模式下API的增删改查操作 索引的初始化操作 创建索引之前可以对索引进行初始化操作,比如先指定shard数量以及replicas的数量 代 ...
- hibernate关联对象的增删改查------增
本文可作为,北京尚学堂马士兵hibernate课程的学习笔记. 这一节,我们看看hibernate关联关系的增删改查 就关联关系而已,咱们在上一节已经提了很多了,一对多,多对一,单向,双向... 其实 ...
- MYSQL的常用命令和增删改查语句和数据类型
连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...
- Hibernate入门案例及增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
随机推荐
- Linux内核TCP MSS机制详细分析
前言 上周Linux内核修复了4个CVE漏洞[1],其中的CVE-2019-11477感觉是一个很厉害的Dos漏洞,不过因为有其他事打断,所以进展的速度比较慢,这期间网上已经有相关的分析文章了.[2] ...
- CMU Database Systems - Sorting,Aggregation,Join
Sorting 排序如果可在内存里面排,用经典的排序算法就ok,比如快排 问题在于,数据表中的的数据是很多的,没法一下都放到内存里面进行排序 所以就需要用到,外排,多路并归排序 看下最简单的,2路并归 ...
- java泛型--问号?和T或E或K或V的区别
所谓泛型,就是在定义类.接口.方法.参数或成员变量的时候,指定它们操作对象的类型为通用类型. 使用 尖括号 <> 操作符 (The diamond operator )表示泛型, 尖括号内 ...
- Java基础 do-while 简单示例
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- shell编程系列15--文本处理三剑客之awk格式化输出printf
shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...
- 设计input搜索框提示文字点击消失的效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 算法习题---5.6团体队列(Uva540)
一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...
- 使用SampleRateConverter对音频采样率进行转换
java sound resource SampleRateconverter.java(接近于官方源码) 输入目标采样率,输入文件,输出文件.食用方便;p 比如 SampleRateConverte ...
- 【Leetcode_easy】914. X of a Kind in a Deck of Cards
problem 914. X of a Kind in a Deck of Cards 题意:每个数字对应的数目可以均分为多组含有K个相同数目该数字的数组. 思路:使用 map 结构记录数组中每个元素 ...
- MySQL报错argument out of range 1055解决办法
参考:https://www.cnblogs.com/liangbenstudy/p/10246895.html MySQL 5.7.22查询时候报错 argument out of range 报错 ...