11-hibernate,单表GRUD操作实例
1,save
2,update
3,delete
4,get/load(查询单个纪录)
实例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.util.Date; import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; //测试类
public class StudentsTest { private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Before
public void init()
{
//创建配置对象
Configuration config=new Configuration().configure();
config.addClass(Students.class);//这个需要加上(视频里面没有)
//创建服务注册对象。
ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder()
.applySettings(config.getProperties()).build(); //通过config.getProperties()读取配置文档。
//创建会话工厂对象
sessionFactory=config.buildSessionFactory(serviceRegistry);
//创建会话对象
session=sessionFactory.openSession();
//开启事务
transaction=session.beginTransaction();
}
@After
public void destory()
{
transaction.commit();//提交事务
session.close();//关闭会话
sessionFactory.close();//关闭会话工厂
} @Test
public void testSaveStudents()
{
Students s=new Students();
s.setSname("张三丰");
s.setGender("男");
Address address=new Address("710069","0289923282","西安市");
s.setAddress(address);
s.setBirthday(new Date());
session.save(s);//保存对象进入数据库
}
@Test
//get查询方法
public void testGetStudents()
{
Students s=session.get(Students.class, 1);
System.out.println(s);
}
@Test
//load查询方法
public void testLoadStudents()
{
Students s=session.load(Students.class, 1);
System.out.println(s);
} @Test
//更新方法
public void testUpdateStudents()
{
Students s=session.get(Students.class, 1);
s.setGender("女");
session.update(s);
}
@Test
//删除方法
public void testDeleteStudents()
{
Students s=session.load(Students.class, 1);
session.delete(s);
} }
测试结果:
get
load
update
delete
get与load区别
1,get在调用之后离开发送sql语句,不考虑缓存,返回持久化对象。
2,load方法在调用后返回一个代理对象。
该代理对象只保存了实体对象的ID,直到使用对象的非主键属性时才会发出sql语句,比如打印输出时候,会调用发出SQL。
3,如果查询数据库不存在的数据,get方法返回null,load方法抛出异常。
11-hibernate,单表GRUD操作实例的更多相关文章
- hibernate单表junit测试
首先,创建java project ,导入需要的jar包 添加hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8'?> <!D ...
- mysql之字段的修改,添加、删除,多表关系(外键),单表详细操作(增删改)
字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 ...
- django-两种方式对单表的操作
单表操作的内容 我们这里对数据库单表的操作包含增删改查四部分 具体链接数据库的方式我们是通过pymysql,当然你也可以用其他的. 两种方式的概念与区别 1.新url的方式 主要就是我们每一次向后台提 ...
- Hibernate单表操作
单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是seque ...
- (三)hibernate单表操作
0. 贴上节hbm文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hib ...
- hibernate课程 初探单表映射3-1 hibernate单表操作简介
本章简介: 1 单一主键 2 基本类型 3 对象类型 4 组件属性 5 单表操作CRUD实例
- ORACLE表空间操作实例
本文主要介绍oracle表空间常见的操作实例,包括创建.查询.增加.删除.修改.表空间和数据文件常用的数据字典和动态性能视图包括v$dbfile.v$datafile.v$tempfile.dba_s ...
- Django中ORM简介与单表数据操作
一. ORM简介 概念:.ORM框架是用于实现面向对象编程语言种不同类型系统的数据之间的转换 构建模型的步骤:重点 (1).配置目标数据库信息,在seting.py中设置数据库信息 DATABASE ...
- Oracle重建表空间操作实例
由于环境维护或者性能测试需要,经常需要对表空间进行重建操作.重建表空间操作主要分3中情况介绍,分别是业务表空间.临时表空间和回滚段表空间的重建. 重建业务表空间 由于业务规划要求,重建后的业务表空间名 ...
随机推荐
- [BZOJ2007][NOI2010]海拔(对偶图最短路)
首先确定所有点的海拔非0即1,问题转化成裸的平面图最小割问题,进而转化成对偶图最短路(同BZOJ1002). 这题的边是有向的,所以所有边顺时针旋转90度即可. 如下图(S和T的位置是反的). #in ...
- code M资格赛 补题
A: 音乐研究 时间限制:1秒 空间限制:32768K 美团外卖的品牌代言人袋鼠先生最近正在进行音乐研究.他有两段音频,每段音频是一个表示音高的序列.现在袋鼠先生想要在第二段音频中找出与第一段音频最相 ...
- django查询
阅读目录 大于.大于等于 小于.小于等于 在...范围内 模糊查询 是否为空 不等于/不包含于 大于.大于等于 1 2 3 4 5 __gt 大于 __gte 大于等于 User.objects. ...
- 将int型数值拆分成4字节
- python基础之dict和set
dict dict是dictionary的缩写,python内置了字典,在其他语言中也称为map,使用键值对储存,具有极快的查找速度. 如果是只用list来实现,就需要两个list,先在第一个list ...
- .Net中的7Zip——Sharpcompress
虽然微软在.net 4.5中集成了对zip的解压支持,但还是比较弱.如果我们想让程序像7zip那样支持万能解压,Sharpcompress可以帮你实现这个目标,它是一个C#写的压缩/解压工具,虽然还没 ...
- java通过UUID生成16位唯一订单号
import java.util.UUID; public class T { public static String getOrderIdByUUId() { int machineId = 1; ...
- 对oracle实例的内存(SGA和PGA)进行调整,优化数据库性
一.名词解释 (1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. (2) ...
- [Android Pro] 获取手机已经安装的应用 和 获取当前正在运行的所有进程(一个uid对应多个pid)
1: 获取PackageManager 获取全部静态已安装的应用: PackageManager pm = getPackageManager(); List<PackageInfo> i ...
- Intents and Intent Filters
An Intent is a messaging object you can use to request an action from another app component. Althoug ...