文档章节

Hibernate CRUD 操作

春泥村雨
 春泥村雨
发布于 2017/07/24 17:21
字数 199
阅读 2
收藏 0
点赞 0
评论 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

不知道为什么SSH 这么流行

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

宏哥 ⋅ 2010/12/17 ⋅ 92

Hibernate 增强工具包--Hibernate-Plus

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

青苗 ⋅ 2016/12/06 ⋅ 3

hibernate4与spring3的整合,不兼容

双休整合下 整合struts2+spring3.2.1+hibernate4.2.1 结果遇到问题如下问题: java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;at......

苏叶晚晚 ⋅ 2013/03/17 ⋅ 0

Hibernate-Plus 发布 1.0.0.Final

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

青苗 ⋅ 2016/12/06 ⋅ 10

baomidou/mybatis-plus

为简化开发工作、提高生产率而生 简介 | Intro Mybatis 增强工具包 - 只做增强不做改变,简化操作 技术讨论 QQ 群 576493122 优点 | Advantages 无侵入:Mybatis-Plus 在 Mybatis 的基础上进...

baomidou ⋅ 2016/01/25 ⋅ 0

为什么要使用Hibernate?

1、讲解什么是Hibernate。 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 2、讲解...

sunflowerlb ⋅ 2013/06/13 ⋅ 0

Hibernate泛型DAO层--SwiftDAO

SwiftDAO是一个轻量级的,基于Hibernate框架的泛型DAO层。如果您使用Hibernate和Spring 框架做开发,SwiftDAO实现了常见的CRUD操作,利用它可以省去很多简单重复代码的编写。 示例代码: @E...

匿名 ⋅ 2010/03/09 ⋅ 0

Jav ORM框架--Darks ORM

Darks ORM框架是多年前开发的一个Java web ORM框架,现在整理更新后发布。Darks ORM框架综合了hibernate及mybatis的特点,同时也加入了很多新元素。它可以像hibernate一样通过简单易用的API...

小编辑 ⋅ 2014/09/12 ⋅ 0

Generic DAO Framework

Hibernate Generic D.A.O. Framework是一个基于Hibernate实现,可扩展的通用泛型DAO框架。封装了一些常用的CRUD操作和搜索功能,并提供远程服务接口。 示例代码: Search search = new Sear...

匿名 ⋅ 2010/03/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于“幂等”操作

一个幂等(idempotent)操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 开发中, 我们经常考虑幂等操作的场景有“接口调用”、“MQ消费”、“自动任务”等 接口调用, 可能出现...

零二一七 ⋅ 18分钟前 ⋅ 0

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些什么,返回的Invoker 对象是什么,我们来看一下代码的切入点: ...

哲别0 ⋅ 33分钟前 ⋅ 0

GP两种连接方式性能测试

GP两种连接方式性能测试 Pivotal import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GPQueryStrin......

仔仔1993 ⋅ 37分钟前 ⋅ 0

jsonrpc-4j代码解析

解析文件 AutoJsonRpcServiceImplExporter JsonServiceExporter AutoJsonRpcServiceImplExporter 路径:com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImplExporter AutoJsonRpcServi......

郭恩洲_OSC博客 ⋅ 59分钟前 ⋅ 0

百度搜索

from selenium import webdriver import time brower=webdriver.Firefox() brower.get('http://www.baidu.com') input=brower.find_element_by_id('kw') input.send_keys('中南大学') time.s......

南桥北木 ⋅ 今天 ⋅ 0

tomcat 日志记录器

1、日志记录器是记录消息的组件 日志记录器需要与某个servlet 容器相关联 2、Logger 接口 共定义了5种日志级别:FATAL、ERROR、WARNING、INFORMATION、DEBUGGER setVerbosity 设置级别 setC...

职业搬砖20年 ⋅ 今天 ⋅ 0

Thrift RPC实战(三) Thrift序列化机制

1.Thrift基础架构 Thrift是一个客户端和服务端的架构体系,数据通过socket传输; 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports); 通过IDL脚本对传输数据的数据结构...

lemonLove ⋅ 今天 ⋅ 0

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错,因为昨天晚上观看了世界杯比赛,尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊,因此我联想到了自己的博客网站,我的博客是去年年底上线的,一直想建设一个关于读书和读后感作...

原创小博客 ⋅ 今天 ⋅ 0

linux 信号机制

signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协...

xxdd ⋅ 今天 ⋅ 0

my.cnf, my-small.cnf, my-medium.cnf, my-large.cnf

1. my-small.cnf # Example MySQL config file for small systems.## This is for a system with little memory (<= 64M) where MySQL is only used# from time to time and it's importa......

周云台 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部