文档章节

Hibernate CRUD 操作

春泥村雨
 春泥村雨
发布于 2017/07/24 17:21
字数 199
阅读 3
收藏 0

1、定义一个返回 sessionFactory 的公共类

HibernateUtil.java

package com.bjsxt.util;

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

public class HibernateUtil
{
	private static SessionFactory sessionFactory;
	
	static
	{
		sessionFactory = new Configuration().configure().buildSessionFactory();
	}
	
	public static SessionFactory getSessionFactory()
	{
		return sessionFactory;
	}
}

2、CRUD 操作示例

package com.bjsxt.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.bjsxt.dao.UserDao;
import com.bjsxt.entity.User;
import com.bjsxt.util.HibernateUtil;

public class UserDaoImpl implements UserDao
{
	//新增
	@Override
	public boolean save(User u)
	{
		try
		{
			SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
			Session session = sessionFactory.getCurrentSession();
			session.beginTransaction();
			session.save(u);
			session.getTransaction().commit();
			return true;
		}
		catch (Exception e)
		{
			e.printStackTrace();
			return false;
		}
	}
	
	//基于条件查询
	@Override
	public boolean checkUserExistsWithName(String username)
	{
		SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		long count = (long) session.createQuery("select count(*) from User u where u.username= :username")
				.setString("username", username)
				.uniqueResult(); // //当确定返回的实例只有一个或者null时用uniqueResult()方法
		session.getTransaction().commit();
		if (count > 0)
		{
			return true;
		}
		return false;
	}
	
	//查询所有
	@Override
	public void queryAll()
	{
		SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		List list = session.createQuery("from User").list();
		for(int i=0;i<list.size();i++)
		{
			User user=(User)list.get(i);
			System.out.println(user.getId()+":"+user.getUsername());
		}
		session.getTransaction().commit();
		System.out.println(list);
	}
}

© 著作权归作者所有

共有 人打赏支持
春泥村雨
粉丝 0
博文 8
码字总数 1794
作品 0
太原
程序员
私信 提问
baomidou/mybatisplus-spring-boot-starter

#mybatisplus-spring-boot-starter mybatisplus-spring-boot-starter 为 Mybatis-Plus 快速集成 spring-boot 简化配置而生,不再需拿 MyBatis 和 Hibernate 相比,mybatis-plus 作为 mybati......

baomidou
2017/05/05
0
0
Hibernate 增强工具包--Hibernate-Plus

简介 | Intro Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层CRUD操作 优点 | Advantages 纯正血统:完全继承原生 Hibernate 的所有特性 最少依赖:仅仅依赖 Hibernate 自动生成代...

青苗
2016/12/06
1K
3
Hibernate-Plus 发布 1.0.0.Final

简介 | Intro Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层CRUD操作 优点 | Advantages 纯正血统:完全继承原生 Hibernate 的所有特性 最少依赖:仅仅依赖 Hibernate 自动生成代...

青苗
2016/12/06
2.6K
10
不知道为什么SSH 这么流行

以前曾经用过 SSH 来做程序,有几个感受: Spring: 里面有些不错的最佳实践,这个东西确实比较实用。特别是Spring MVC,加上freemarker非常棒。而且体积很小。 JDBCTemplate 也蛮实用的 Hibe...

宏哥
2010/12/17
9.3K
92
MyBatis原理简介和小试牛刀

在我看来mybatis的原理与hibernate在某些方面是一致的,先回顾一下Hibernate原理(原理主要上是要掌握并理解下列六个对象: Hibernate中重要的六个对象: Configuration:读取配置文件(主要指h...

youcongtech
2017/11/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部