文档章节

菜鸟学习Hibernate——简单的增、删、改、查操作

Airship
 Airship
发布于 2017/01/11 14:35
字数 414
阅读 4
收藏 0

上篇博客利用hibernate搭建起一个简单的例子,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述如何利用Hinbernate框架实现简单的数据库操作。

1、加入junit.jar

2、新建一个工具类HibernateUtils.Java把一些对session的公共操作封装起来

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {
/*
  *读取Hibernate.cfg.xml文件
*/
	private static SessionFactory factory;
	
	static {
		try {
			//读取hibernate.cfg.xml文件
			Configuration cfg = new Configuration().configure();
			
			//建立SessionFactory
			factory = cfg.buildSessionFactory();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	/*
	  *打开Session
	*/
	
	public static Session getSession() {
		return factory.openSession();
	} 
	/*
	  *关闭Session
	*/
	
	public static void closeSession(Session session) {
		if (session != null) {
			if (session.isOpen()) {
				session.close();
			}
		}
	}
	
	public static SessionFactory getSessionFactory() {
		return factory;
	}
}

3、新建一个test类继承TestCase(Junit包里面的)然后下面就利用test类对User对象的增、删、改、查。

import java.util.Date;

import org.hibernate.Session;

import com.bjpowernode.hibernate.HibernateUtils;

import com.bjpowernode.hibernate.User;

import junit.framework.TestCase;

public class test extends TestCase {
/*
 * 增加User
 */
	public void testSave() {
		
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			User user = new User();
			user.setName("李四");
			user.setPassword("123");
			user.setCreateTime(new Date());
			user.setExpireTime(new Date());
			session.save(user);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	/**
	 * 删除
	 */
	public void testDel(){
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			User user=(User)session.load(User.class, "4028989545a244640145a24466300001");
			
			session.delete(user);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	
	/**
	 * 修改
	 */
	public void testUpdate(){
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			User user=(User)session.load(User.class, "4028989545a243ca0145a243cbf80001");
			user.setName("王五");
			session.update(user);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	
	/**
	 * 查询
	 */
	public void testLoad(){
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			User user=(User)session.load(User.class, "4028989545a243ca0145a243cbf80001");
			System.out.println(user.getName());
			System.out.println(user.getId());
			System.out.println(user.getPassword());
			System.out.println(user.getClass());
			System.out.println(user.getCreateTime());
			System.out.println(user.getExpireTime());
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
}

4、效果图

 

总结:

      利用Hibernate简单的增、删、改、查操作的应用是一个很基础的应用刚学Hibernate就应该先从简单的学起。

本文转载自:http://blog.csdn.net/gwblue/article/details/24593113

Airship
粉丝 46
博文 1045
码字总数 21161
作品 0
南京
高级程序员
私信 提问
完整的权限管理系统 - LaySSH

LaySSH是一款完全开源免费的开发框架,基于LayUI+SpringMVC+Spring+Hibernate+Mysql搭建而成,内置代码生成器,能够快速生成增删改查代码,节省开发时间,快速构建企业级的web应用系统。 该框...

herun
2018/02/02
6.3K
4
学习hibernate感受(-)

做为一个初学Hibernate的过来人,想对将要学习Hibrnate的高手手们谈一下自己的感受! 首先我们要弄清楚,我们为什么要学习Hibernate?Hibernate是什么东东? 在这里我们要明确,我们是java程...

WYDPH
2012/10/01
220
1
博为峰Java技术文章 ——JavaEE 初识Hibernate II

博为峰小博老师: 在Hibernate中有3个重要的类,它们是配置类、会话工厂类和会话类,具体如下: l 配置类(Configuration)主要负责管理Hibernate的配置信息以及启动Hibernate,在Hibernate运行...

博为峰教研组
2016/12/25
10
0
45、MongoDB—增、删、改、查

前言:这章我们说说数据库的常规操作,增、删、改、查。 GitHub:https://github.com/Ewall1106/mall 1、增 数据行的增在前面的知识点的讲解中就已经有过涉及了,没错,就是操作。 我们这里新...

Ewall_
2018/11/07
0
0
JAVA程序对MYSQL数据库加锁实验

以下实验仅在MySQL 5.0.45做的实验. 方法1:用mysql命令锁住表. 一、对于read lock 和 write lock官方说明: 1.如果一个线程获得一个表的READ锁定,该线程(和所有其它线程)只能从该表中读取...

mifans
2016/11/14
50
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
9
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
964
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部