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 ...
随机推荐
- Android学习网站推荐(转)
收集了一些比较好的Android学习网站,希望对大家有所帮助: 1.http://developer.android.com/ Android官方网站,可惜被屏蔽了,需要使用FQ软件 2.http:/ ...
- WORD2007多级列表
转自玄鸟翩翩 http://hi.baidu.com/shine_yen http://hi.baidu.com/shine_yen/item/01ff2255043bc1aeacc85722 用Wo ...
- 【T_SQL】基础 续+
十.模糊查询 1.LIKE --查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容. SELECT StuName AS 姓名 FROM Stuinfo WHERE stuname ...
- 【hibernate 报错】No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer 【get和load的区别】
报错: HTTP Status 500 - Could not write content: No serializer found for class org.hibernate.proxy.poj ...
- json 转化
1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下: JSONArray array = JSONArray.fromObject(userlist); S ...
- 使用wget
下载整个网站 需要下载某个目录下面的所有文件: wget -c -r -np -k -L -p url 有用到外部域名的图片或连接,如果需要同时下载就要用-H参数: wget -np -nH -r - ...
- css整理-04 基本视觉格式化
基本框 假定每一个元素都会生成一个火多个矩形框,为元素框 元素框中心有一个内容区,周围有内边距,边距和外边距 内容的背景会应用到内边距,外边距是透明的,可以看到父元素的背景 内边距不能是负值,外边距可 ...
- Swift3.0语言教程分割字符串与截取字符串
Swift3.0语言教程分割字符串与截取字符串 Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组.在NSString中有两个分割字 ...
- Swift3.0语言教程比较、判断字符串
Swift3.0语言教程比较.判断字符串 Swift3.0语言教程比较.判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断.本小节将讲解这些内容. 1.不区分大小写比较 ...
- DelphiXE下的字符串变化
字符串类型用于描述一个单独的书面的文字和符号. 一.字符类型 Delphi支持AnsiChar和WideChar两种基本的字符类型.AnsiChar类型变量使用单字节来表示一个字符,WideChar使 ...