Hibernate---单条记录的增删改查
- package com.hanqi.test;
- import static org.junit.Assert.*;
- import java.util.Date;
- 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;
- import com.hanqi.entity.User;
- public class Test01 {
- private ServiceRegistry sr =null;
- private Session se =null;
- private Transaction ts = null;
- private SessionFactory sf = null;
- //在测试用例方法被执行之前自动执行的方法
- //一般用来初始化公用的对象
- //前置方法
- @Before
- public void init()
- {
- //1.获取配置文件
- Configuration cfg = new Configuration().configure();
- //2.注册配置
- sr =new StandardServiceRegistryBuilder()
- .applySettings(cfg.getProperties()).build();
- //3. 获取Session-Factory(相当于JDBCd 连接)
- sf = cfg.buildSessionFactory(sr);
- System.out.println(sf);
- //4.产生Session(回话)
- se = sf.openSession(); //创建
- //5.启动事务
- ts = se.beginTransaction();
- }
- //后置方法
- //一般用来释放资源
- @After
- public void destroy()
- {
- //7.提交事务
- ts.commit();
- //8释放资源
- se.close();
- sf.close();
- }
- //测试Hibernate连接数据库
- @Test
- public void test() {
- //1.获取配置文件
- Configuration cfg = new Configuration().configure();
- //2.注册配置
- ServiceRegistry sr =new StandardServiceRegistryBuilder()
- .applySettings(cfg.getProperties()).build();
- //3. 获取Session-Factory(相当于JDBCd 连接)
- SessionFactory sf = cfg.buildSessionFactory(sr);
- System.out.println(sf);
- //4.产生Session(回话)
- Session se = sf.openSession(); //创建
- //5.启动事务
- Transaction ts = se.beginTransaction();
- //6.操作数据库
- //添加数据
- //实例化的新的对象,处于临时状态
- User u1 = new User();
- u1.setBirthday(new Date());
- u1.setMoney(2000);
- u1.setPassword("111111");
- u1.setUserName("测试1");
- //u1.setUserId(2);//自然主键
- //保存数据
- //透过save方法吧对象从临时状态变成持久化状态
- se.save(u1);//添加数据
- System.out.println("u1="+u1);
- //7.提交事务
- ts.commit();
- //释放资源
- se.close();
- sf.close();
- }
- //测试查询
- @Test
- public void test01()
- {
- //查询数据
- //提供两个参数
- //1需要返回哪一个持久化类的实例
- //2实例的标识(数据的主键值)
- //通过Session的get方法获得的对象处于持久化状态
- User u2 =(User)se.get(User.class, 3);//查找
- u2.setUserName("修改的");//修改
- System.out.println(u2);
- //删除
- se.delete(u2);//使持久化对象进入删除状态
- }
- @Test
- public void test02()//测试缓存
- {
- User u1 = (User) se.get(User.class, 4);//立即加载数据
- System.out.println("get老付变傻逼之后");
- System.out.println(u1);
- User u2 =(User) se.get(User.class, 14);
- System.out.println(u2);
- }
- @Test
- public void tese03()
- {
- User u1 =(User)se.load(User.class, 14);//延时加载数据(懒加载)
- System.out.println("load后");
- System.out.println(u1);//当使用时才加载
- }
- //测试游离状态
- @Test
- public void test04()
- {
- User u1=(User)se.get(User.class, 4);//得到持久化状态的对象
- System.out.println("u1="+u1);
- //关闭Session
- se.close();
- //使u1进入游离状态
- u1.setUserName("测试游离111");
- u1.setUserId(null);//把id设为null
- System.out.println("这是啥,重新创建session");
- //重新创建session
- se=sf.openSession();
- ts=se.beginTransaction();//重新开启事务
- //se.saveOrUpdate(u1);
- System.out.println("u1="+u1);
- }
- }
Hibernate---单条记录的增删改查的更多相关文章
- hibernate关联对象的增删改查------查
本篇博客是之前博客hibernate关联对象的增删改查------查 的后继,本篇代码的设定都在前文已经写好,因此读这篇之前,请先移步上一篇博客 //代码片5 SessionFactory sessi ...
- Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查
一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process ...
- mysql对库,表及记录的增删改查
破解密码 #1.关闭mysqlnet stop mysqlmysql还在运行时需要输入命令关闭,也可以手动去服务关闭 #2.重新启动mysqld --skip-grant-tables跳过权限 #3m ...
- Hibernate入门案例及增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
- Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之ssh框架整合
前言 转载请标明出处:http://www.cnblogs.com/smfx1314/p/7795837.html 本项目是我写的一个练习,目的是回顾ssh框架的整合以及使用.项目介绍: ...
- hibernate关联对象的增删改查------增
本文可作为,北京尚学堂马士兵hibernate课程的学习笔记. 这一节,我们看看hibernate关联关系的增删改查 就关联关系而已,咱们在上一节已经提了很多了,一对多,多对一,单向,双向... 其实 ...
- Hibernate进行对象的增删改查
首先我们看看hibernate手动配置步骤 (这个了解一点就可以了,以后是不会自己全部手动配置的) 1. 创建WEB项目 2 下载hibernate-release-4.3.11.F ...
- Hibernate——(2)增删改查
案例名称:Hibernate完成增删改查 案例描述:抽取出工具类并完成删除.修改.查询功能. 具体过程: 1.使用上面的例子(Hibernate--(1)Hibernate入门http://blog. ...
- MySQL:记录的增删改查、单表查询、约束条件、多表查询、连表、子查询、pymysql模块、MySQL内置功能
数据操作 插入数据(记录): 用insert: 补充:插入查询结果: insert into 表名(字段1,字段2,...字段n) select (字段1,字段2,...字段n) where ...; ...
- Hibernate常用api以及增删改查
一 .API的定义 所谓的API全称就是(Application Programming Interface,应用程序编程接口).就是类库对外提供的接口.类.枚举.注解等元素. 如:JDK API ...
随机推荐
- Waiting Processed Cancelable ShowDialog (Release 2)
namespace Test { using System; using System.Windows.Forms; static class Program { /// <summary> ...
- Linux学习笔记(21) Linux日志管理
1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式 ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- SpringRMI解析2-RmiServiceExporter逻辑脉络
配置文件是Spring的核心,在配置文件中我们可以看到,定义了两个bean,其中一个是对接口实现类的发布,而另一个则是对RMI服务的发布,使用org.springframework.remoting. ...
- Zepto tap 穿透bug
当两个层重叠在一起时,使用Zepto的tap事件时,点击上面的一层时会触发下面一层的事件,特别是底层如果是input框时,必“穿透”,“google”说原因是“tap事件实际上是在冒泡到body上时才 ...
- 在html 中嵌入优酷视频
<html> <embed src="http://player.youku.com/player.php/sid/XMjAzOTk4NjI4/v.swf" qu ...
- DFS(连通块) ZOJ 2743 Bubble Shooter
题目传送门 题意:从炮台射出一个球,三个及以上颜色相同的会掉落,问最后会掉落多少个球 分析:先从炮台找一个连通块,然后与顶部连接的连通块都不会掉落,剩下的就是炮台射出后跟随掉落的. #include ...
- AC自动机(二维) UVA 11019 Matrix Matcher
题目传送门 题意:训练指南P218 分析:一行一行的插入,一行一行的匹配,当匹配成功时将对应子矩阵的左上角位置cnt[r][c]++;然后统计 cnt[r][c] == x 的数量 #include ...
- iOS NSDate获取当前时间并格式化
NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM- ...
- 【原】iOS多线程之线程间通信和线程互斥
线程间通信 1> 线程间通信分为两种 主线程进入子线程(前面的方法都可以) 子线程回到主线程 2> 返回主线程 3> 代码 这个案例的思路是:当我触摸屏幕时,会在子线程加载图片,然后 ...