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 ...
随机推荐
- AxureRP7.0各类交互效果汇总帖(转)
了便于大家参考,我把这段时间发布分享的所有关于AxureRP7.0的原型做了整理. 以下资源均有对应的RP源文件可以下载. 当然 ,其中有部分是需要通过完成解密游戏[攻略]才能得到下载地址或者下载密码 ...
- 2015腾讯web前端笔试题
1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是 ...
- How to AC it
旋转卡壳 DP,网络流
- checkbox全选和子选
用jq: $(function() { var $subBox = $("input[name='subBox']"); $("#checkAll").clic ...
- pythonpython-eggs异常解决方法
: UserWarning: /home/server/.python-eggs is writable by group/others and vulnerable to attack when u ...
- Streaming data from Oracle using Oracle GoldenGate and Kafka Connect
This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...
- SoapUI接口测试之JDBC(三)
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口 ...
- C语言补码作用
补码主要是为了cpu运算器在进行减法运算时避免借位而设立的. 在早期,cpu中的运算器部分,只要实现一个加法器就可以完成四由算术运算. 因为计算机中的数值编码是有限位数的,所以减法实际上相当于加上减数 ...
- 改变图片尺寸(python)
for name in /图片路径; do convert -resize 256x256! $name $namedone
- 记一次小团队Git实践(下)
在上篇中,我们已经能基本使用git了,接下来继续更深入的挖掘一下git. 更多的配置自定义信息 除了前面讲的用户名和邮箱的配置,还可以自定义其他配置: # 自定义你喜欢的编辑器,可选 git conf ...