文档章节

hibernate操作数据库总结

小思绪跌跌撞撞仰望天空
 小思绪跌跌撞撞仰望天空
发布于 2016/08/18 11:42
字数 893
阅读 18
收藏 0

这篇文章用于总结hibernate操作数据库的各种方法

一、query方式

1、hibernate使用原生态的sql语句执行数据库查询

有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不是原生态的sql语句,数据库不支持,因此情愿选择回到jdbc时 代。这样既耗时耗力,又破坏面向对象的编程。其实,hibernate已经考虑到这个问题,hibernate可以执行原生态的sql语句,正对每种数据 库,你可以写对应的sql语句,然后用createSQLQuery(sql)即可。

 

/**
		 * 本地sql的检索方式,使用原生态的sql语句检索
		 * 
		 */
		Session session = this.getSession();
		String sql = "select * from course where cid=:id";
		Query query = session.createSQLQuery(sql);// 本地SQL检索方式
		query.setInteger("id", c_id);
		query.list();// 返回持久化的list

2、query执行查询操作(基本方式,字符串连接方式生成hql语句)

query执行查询操作,可以返回唯一对象或者是对象列表

(1)query返回对象列表

 

/**
		 * hql的检索方式,执行查询数据库操作,返回对象的列表
		 * 采用hql语句连接方式
		 */
		Session session = this.getSession();
		String hql = "select * from CourseDO where CId="+id+"";
		Query query = session.createQuery(hql);// 本地SQL检索方式
		query.list();// 返回持久化的list


(2)query返回唯一对象

 

 

/**
		 * hql的检索方式,执行查询数据库操作,返回唯一对象
		 * 采用hql语句连接方式
		 */
		Session session = this.getSession();
		String hql = "select * from CourseDO where CId="+id+"";
		Query query = session.createQuery(hql);// 本地SQL检索方式
		query.uniqueResult();// 返回持久化的list

3、query执行查询操作

 

hql采用参数方式,其中参数绑定方式分为两种:按照名字绑定,按照位置绑定

(1)hql参数绑定采用按照名字绑定

 

/**
		 * hql的检索方式,执行查询数据库操作,返回对象的列表
		 * 
		 * 参数绑定的形式分为按名字绑定,按位置绑定 此处是按照名字绑定
		 */
		Session session = this.getSession();
		String hql = "select * from CourseDO where CId=:id";
		Query query = session.createQuery(hql);// 本地SQL检索方式
		query.setInteger("id", c_id);// 名字绑定参数
		query.list();// 返回持久化对象的list列表

 

(2)hql参数绑定采用按照位置绑定

 

/**
		 * hql的检索方式,参数绑定的形式分为按名字绑定,按位置绑定 此处是按照位置绑定
		 */
		String hql = "from CourseDO where CId=?";
		Session session = this.getSession();
		Query query = session.createQuery(hql);
		query.setParameter(0, c_id);// 位置绑定方式
		query.uniqueResult();// 检索单个对象,返回唯一值

4、query执行更新,删除操作

 

利用query的executeUpdate()方法实现

 

/**
		 * query执行更新,删除等非查询语句
		 * 
		 */
		String hql = "delete from CourseDO where CId=? and Time=?";
		Session session = this.getSession();
		Query query = session.createQuery(hql);
		query.setParameter(0, c_id);// 位置绑定方式
		query.setDate(1, new Date());// 位置绑定方式,设置为Date类型
		query.executeUpdate();// 执行delete,update和insert into 语句

二、hibernate模版方法

利用hibernate模版方法执行hql语句非常简单,但是有时候不是那么方便,可以自己选择使用。

 

1、hibernateTemplate查询数据库

/**
		 * 利用hibernate模版方法进行查询,绑定参数形式
		 * 
		 */
		String hql = "from CourseDO where CId=? and Date=?";
		List<CourseDO> courseDOs = getHibernateTemplate().find(hql, c_id,
				new Date());

2、hibernateTemplate更新数据

 

 

/**
		 * 利用hibernate模版方法进行更新,绑定参数形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().update(courseDO);

3、hibernateTemplate插入数据

/**
		 * 利用hibernate模版方法进行插入,绑定参数形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().save(courseDO);

4、hibernateTemplate删除数据

/**
		 * 利用hibernate模版方法进行删除,绑定参数形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().delete(courseDO);

本文转载自:http://www.cnblogs.com/dyllove98/archive/2013/06/29/3163099.html

小思绪跌跌撞撞仰望天空
粉丝 0
博文 23
码字总数 6998
作品 0
武汉
程序员
私信 提问
Hibernate基本概念

我们学习一门技术首先要了解它的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领大家一起回顾一下Hibernate: 什么是Hibernate? Hibernate,翻译过来是冬眠的意思,其...

hchen1982
2016/12/09
37
0
Hibernate的优缺点总结

在这里整理一下Hibernate的优缺点,有不完整的地方希望大家指出。谢谢! 先说一下Hibernate的优点: 一、Hibernate优点: 1、对象化。hibernate可以让开发人员以面相对象的思想来操作数据库。...

Winnie007
2015/10/06
716
0
hibernate 基本原理

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎...

Daim
2016/03/23
22
0
Hibernate基本原理(一)

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎...

architect刘源源
2018/01/11
31
0
Hibernate框架(一)——总体介绍

作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷。利用Hibernate框架我们就可以不再编写重复的JDBC代...

凡尘里的一根葱
2015/11/10
98
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部