package com.etc.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.etc.dao.HibernateSessionFactory;
import com.etc.entity.Book;
public class Test1
{
static void update()//修改
{
//从工具类获取1条记录
Session s = HibernateSessionFactory.getSession();
//开启事务
s.beginTransaction();
try
{
//执行修改
Book book=new Book("老黑传",100f,"老白",100f);
book.setBid(12);
s.update(book);//修改
}
catch (Exception e)
{
e.printStackTrace();
s.getTransaction().rollback();//回滚事务
}
//提交事务
s.getTransaction().commit();
System.out.println("修改成功!");
//关闭连接
HibernateSessionFactory.closeSession();
}
static void delete()//删除
{
//从工具类获取1条记录
Session s = HibernateSessionFactory.getSession();
//开启事务
s.beginTransaction();
try
{
//执行删除
//删除必须先精确查出来
Book book=(Book) s.get(Book.class, 11);
s.delete(book);//删除
}
catch (Exception e)
{
e.printStackTrace();
s.getTransaction().rollback();//回滚事务
}
//提交事务
s.getTransaction().commit();
System.out.println("删除成功!");
//关闭连接
HibernateSessionFactory.closeSession();
}
static void add()//添加
{
Book book = new Book("老黑传",100f,"老黑",100f);
//从工具类获取1条记录
Session s = HibernateSessionFactory.getSession();
//开启事务
s.beginTransaction();
try
{
//执行插入
s.save(book);
}
catch (Exception e)
{
e.printStackTrace();
s.getTransaction().rollback();//回滚事务
}
//提交事务
s.getTransaction().commit();
System.out.println("插入成功!");
//关闭连接
HibernateSessionFactory.closeSession();
}
static void tudo()//不使用工具类的查询
{
//加载配置文件
Configuration config=new Configuration().configure();
//获取Hibernate的连接工厂
SessionFactory fac=config.buildSessionFactory();
//从工厂获取1条连接
Session s=fac.openSession();
//执行查询
String hql="from Book";
List<Book> list=s.createQuery(hql).list();
//遍历结果
for(Book b:list)
{
System.out.println(b);
}
//关闭连接
s.close();
}
@SuppressWarnings("unchecked")
static void tudo2()//使用工具类的查询(推荐)
{
// 从工具类获取1条连接
Session s=HibernateSessionFactory.getSession();
//执行查询
String hql ="from Book.bname";
List<Book> list = s.createQuery(hql).list();
// 遍历结果
for(Book b:list)
{
System.out.println(b);
}
//关闭连接
HibernateSessionFactory.closeSession();
}
public static void main(String[] args)
{
//tudo();
tudo2();
//add();
//delete();
//update();
}

}

Hibernate_增删改的更多相关文章

  1. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  2. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  3. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

  4. MongoDB下载安装与简单增删改查

    Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongo ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  6. php数据库访问及增删改

    利用PHP访问由MySQL构建的数据库 连接到数据库 //1.造连接对象 $db = new MySQLi("localhost","root","1 ...

  7. 通过Java代码实现对数据库的数据进行操作:增删改查

    在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao  xingming    xue ...

  8. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  9. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

随机推荐

  1. 学习Google Protocol buffer之语法

    上一篇结尾的时候问了几个问题,其实主要就是这个protoBuffer协议的语法,弄清楚语法后边才好开展工作嘛,不然大眼而对小眼儿,互相不认识,就没法玩耍了.其实就是学习怎么用google提供的这套 p ...

  2. Keepalived+Redis高可用部署(第二版)

    更新 20150625 脚本由5个减少为4个,sh脚本指令做了精简. 修改了另外3个脚本,在日志里增加了日期显示. 新增redis数据类型,持久化,主从同步简介. 新增hiredis简介. 新增c语言 ...

  3. SpringMVC学习--springmvc和mybatis整合

    简介 springMVC是表现层,service充当业务层,mybatis作为持久层,通过spring将这三层整合起来.如下图: 第一步:整合dao层 mybatis和spring整合,通过sprin ...

  4. 美发帮--android APP开发实战

    登陆界面,LinearLayout  ImageView  Button   用到了ImageView自动缩放,和自定义Button形状及State-Drawable,还用到了动画. 自定义控件之圆形 ...

  5. PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

    通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库 使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2) ...

  6. git 最常用命令

    新建分支 git branch a #分支名称为a 切换到develop分支 git checkout a 新建分支并切换 git checkout -b a 推送到远程分支 git push ori ...

  7. MySQL 1045登录失败

    当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信 ...

  8. pch文件的使用

    pch文件的应用场景:1.用来定义一些全局的宏2.用来导入一些全局都能访问的头文件(如果只需要让.m或者.mm文件访问到,不需要让.c文件访问到,那么需要把头文件写到#ifdef _OBJC_ #en ...

  9. Java多线程与并发库高级应用-传统线程互斥技术

     线程安全问题: 多个线程操作同一份数据的时候,有可能会出现线程安全问题.可以用银行转账来解释. 模拟线程安全问题 /** * 启动两个线程分别打印两个名字,名字按照字符一个一个打印 * * @aut ...

  10. bzoj 3518 Dirichlet卷积

    详情见代码,回头再填坑... #include<iostream> #include<cstdio> #include<algorithm> #include< ...