- 浏览: 991209 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
package com.mengya.dao;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import com.mengya.entity.Stu;
import com.mengya.util.SessionFactoryUitl;
/**
* Query query=this.GetSession().createQuery(hql); query.iterate()与query.list()
* 效率是说query.iterate()比query.list()好,但做了N+1次查询 它们都是先从数据库的查询出主键值,然后根据主键值查询出对象,
* 只是query.iterate()会根据主键值先从缓存当中找,若没有就从数据库查询 query.list()会根据主键值在数据库查询(N+1)
*/
public class StuDAO extends SessionFactoryUitl {
private Transaction tran;
/**
* 添加
*/
public void save(Stu stu) {
try {
tran = this.GetSession().beginTransaction();
this.GetSession().save(stu);
tran.commit();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
}
/**
* 使用HQL全查询
*/
public List getallbyHQL() {
List arr = null;
try {
String hql = "from Stu";
Query query = this.GetSession().createQuery(hql);
arr = query.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 使用Criteria全查询
*/
public List getallbyCriteria() {
List arr = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
arr = cri.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 根据主键查询
*/
public Stu getbyID(int id) {
Stu stu = null;
try {
stu = (Stu) this.GetSession().get(Stu.class, id);
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return stu;
}
/**
* 根据对象属性查询(使用Query)
*/
public List getbyPropertyQuery(String name) {
List arr = null;
try {
// 这里不能像SQL语一样select * from Stu where SName=:name,这是不对的。
// Query query=this.GetSession().createQuery("from Stu where
// SName=:name");
// query.setString("name", name);
// 或者
Query query = this.GetSession().createQuery(
"from Stu where SName=?");
query.setString(0, name);
arr = query.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 根据对象属性查询(使用Criteria)
*/
public List getbyPropertyCriteria(String name) {
List arr = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
Criterion c1 = Expression.eq("SName", name);
cri.add(c1);
arr = cri.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 查询部分属性
*/
public List getProperty() {
List arr = new ArrayList();
try {
String hql = "select s.SName,s.SSex from Stu as s";
Query query = this.GetSession().createQuery(hql);
List list = query.list();
Iterator iter = list.iterator();
while (iter.hasNext()) {
Object[] obj = (Object[]) iter.next();
Stu s = new Stu();
s.setSName(obj[0].toString());
s.setSSex(obj[1].toString());
arr.add(s);
}
} catch (HibernateException e) {
this.CloseSession();
}
return arr;
}
/**
* 查询一个属性
*/
public List getoneProperty() {
List arr = new ArrayList();
try {
String hql = "select s.SName from Stu as s";
Query query = this.GetSession().createQuery(hql);
Iterator iter = query.iterate();
while (iter.hasNext()) {
Object obj = (Object) iter.next();
Stu s = new Stu();
s.setSName(obj.toString());
arr.add(s);
}
} catch (HibernateException e) {
this.CloseSession();
}
return arr;
}
/**
* 查询一个对象一个属性值
*/
public Object getonlyProprotyValue(int s_id) {
Object obj = null;
try {
String hql = "select s.SName from Stu as s where s.SId=?";
Query query = this.GetSession().createQuery(hql);
query.setInteger(0, s_id);
obj = query.uniqueResult();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return obj;
}
/**
* Criteria多条件查询
*/
public List getPropertyByCriteria(String name, int age) {
List list = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
Criterion c1 = Expression.eq("SName", name);
Criterion c2 = Expression.eq("SAge", age);
cri.add(c1);
cri.add(c2);
list = cri.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return list;
}
/**
* SQL查询
*/
public List getallBYSQL() {
List arr = null;
try {
String sql = "select {c.*} from stu as c";
SQLQuery sqlquery = this.GetSession().createSQLQuery(sql);
sqlquery.addEntity("c", Stu.class);
arr = sqlquery.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 根据对象查询
*/
public List getallByObject(Stu s) {
List arr = null;
try {
String hql = "from Stu as s where s=:stuentity";
// 或者
// String hql="from Stu as s where s.SId=:stuentity";
Query query = this.GetSession().createQuery(hql);
query.setEntity("stuentity", s);
arr = query.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* 模糊查询
*/
public List getallQueryLike(String name) {
List arr = null;
try {
String hql = "from Stu as s where s.SName like :name";
Query query = this.GetSession().createQuery(hql);
query.setString("name", "%" + name + "%");
// 不能
// query.setString("name", "'%"+name+"%'");
arr = query.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* Criteria模糊查询
*/
public List getallCriteriaLike(String name) {
List arr = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
Criterion c1 = Expression.like("SName", "%" + name + "%");
cri.add(c1);
arr = cri.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
/**
* Criteria范围查询
*/
public List getallCriteriabetween(int age1, int age2) {
List arr = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
Criterion c1 = Expression.between("SAge", age1, age2);
cri.add(c1);
arr = cri.list();
} catch (HibernateException e) {
this.CloseSession();
} finally {
this.CloseSession();
}
return arr;
}
/**
* 统计函数
*/
public int CountStu() {
int count = 0;
try {
String hql = "select count(*) from Stu";
Query query = this.GetSession().createQuery(hql);
count = (Integer) query.uniqueResult();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return count;
}
/**
* Criteria条件统计
*/
public int CountStuByWhereInCriteria(int num1, int num2) {
int count = 0;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
Criterion c1 = Expression.between("SAge", num1, num2);
cri.add(c1);
count = cri.list().size();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return count;
}
/**
* 条件统计
*/
public int CountByWhere(String sex) {
int count = 0;
try {
Query query = this.GetSession().createQuery(
"select count(*) from Stu where SSex=:sex");
query.setString("sex", sex);
count = (Integer) query.uniqueResult();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return count;
}
/**
* 统计平均值
*/
public float VagAge() {
float vag = 0;
try {
Query query = this.GetSession().createQuery(
"select avg(SAge) from Stu");
vag = (Float) query.uniqueResult();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return vag;
}
/**
* 求和函数
*/
public int sumage() {
int sum = 0;
try {
Query query = this.GetSession().createQuery(
"select sum(SAge) from Stu");
sum = (Integer) query.uniqueResult();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return sum;
}
/**
* Criteria排序
*/
public List getallCriteriaOrder() {
List arr = null;
try {
Criteria cri = this.GetSession().createCriteria(Stu.class);
cri.addOrder(Order.desc("SAge"));
arr = cri.list();
} catch (HibernateException e) {
throw e;
} finally {
this.CloseSession();
}
return arr;
}
}
发表评论
-
Hibernate的HQL not like查询
2009-09-24 18:20 9760今天想用Hibernate的Restriction ... -
Hibernate Gossip: Bag
2009-09-14 16:37 1440Bag是集合,与Set不同的是,Bag允许重复的元素,在Jav ... -
hibernate的Restrictions用方说明
2009-06-15 21:09 1909方法 说明 Restric ... -
Hibernate完成常用的JDBC操作下
2009-05-29 16:38 1427一方: package com.mengya.dao; i ... -
Native SQL查询
2009-04-29 22:02 1556你也可以使用你的数据 ... -
hibernate调用存储过程来分页
2009-04-29 07:56 3729虽然Hibernate帮助我们完成了分页功能,但若 ... -
Hibernate中实体对象的生命周期
2009-04-21 22:58 1404实体对象的生命周期在Hibernate应用中是一个很关键的概念 ... -
HibernateTemplate的常规用法
2009-04-21 22:55 1318HibernateTemplate提供非常多的常用方法来完成基 ... -
cascade与inverse的作用
2009-04-21 22:52 1760Cascade:用来说明当对主对象进行某种操作时是否对其关联的 ... -
Hibernate一对一的使用
2009-04-21 22:50 1787数据库:create table student( id ... -
Hibernate多对多说明
2009-04-21 22:47 1395数据库:--学生表create table stu( s_i ... -
query.iterate()与query.list()的区别
2009-04-21 22:46 2004Query query=this.GetSession().c ... -
Hibernate中的Query一些基本用法
2009-04-21 22:45 5034/*** 添加*/public void save(Stu s ... -
Hibernate中Criteria的使用
2009-04-21 22:42 2805/*** 使用Criteria全查询*/public List ... -
Hibernate关联表特殊查询(一方)inner join fetch,left join fet
2009-04-21 22:40 18044inner join fetch/*** 一对多中的一方inn ... -
Hibernate关联表特殊查询(多方)上
2009-04-21 22:39 2343/*** 多条件组合查询*/ public List get ... -
get和load的区别
2009-04-20 17:20 1199(1)load()方法从来就是假定数据在数据库中是存在的,在使 ... -
Hibernate中的ORM关系映射主键生成方式即(Generator的class值)
2009-04-20 17:18 2136主键产生器可选项说明 ...
相关推荐
1. **加载特定的JDBC驱动程序**:因为该驱动程序实际上负责与数据库进行通信。 2. **打开连接**:使用这个连接来发送SQL语句并获取结果。 3. **创建JDBC Statement对象**:这个对象包含SQL查询。 4. **执行语句**:...
"jdbc"文件夹可能包含了一些自定义的JDBC操作,如连接池配置、数据访问对象(DAO)类,或者是一些在Hibernate未能完全覆盖到的特定数据库操作。而"hibernate"文件夹则可能包含了Hibernate的配置文件(如hibernate....
JDBC(Java Database Connectivity)是Java程序连接数据库的标准方式,其基本步骤包括实例化驱动、...了解这些基本概念和操作后,开发者能够更高效地利用Hibernate进行数据库操作,减少了直接处理JDBC时的繁琐工作。
标题 "hibernate3_jdbc_spring3_tomcat6(jar包)" 暗示了这是一个关于整合Hibernate 3、JDBC、Spring 3框架,并在Tomcat 6应用服务器上运行的项目。这个项目的重点是展示如何在Java环境中高效地管理持久层操作,...
JDBC(Java Database Connectivity)和Hibernate是Java中处理数据库操作的两个重要工具。对于初学者来说,理解和掌握这两个技术对于深入理解Java后端开发至关重要。 JDBC是Java API,它提供了一种标准的方式来连接...
### 在JDBC与Hibernate中实现分页功能 随着数据量的不断增长,高效地管理和展示大量数据成为了一个挑战。为了优化用户体验并减轻服务器负担,分页技术被广泛应用于各种应用场景中。本文将深入探讨如何在Java开发...
Hibernate的核心在于提供对象-关系映射(ORM)服务,使得开发者能够以面向对象的方式来管理和操作数据库中的数据,从而减少了直接使用JDBC进行数据操作时的复杂性和错误。 为什么需要Hibernate? 在传统的JDBC编程中...
1. **安装MySQL数据库**: 首先,你需要在本地或者服务器上安装MySQL数据库,下载并安装适合你操作系统版本的MySQL服务器。创建一个新的数据库和用户,以便于后续配置。 2. **JDBC驱动**: Hibernate需要JDBC驱动来与...
在本文中,我们将深入探讨如何在MyEclipse中配置并使用Hibernate进行数据库操作。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者通过Java对象来操作数据库,避免了直接编写SQL语句的繁琐过程。 首先...
在这个“使用Hibernate完成影院售票系统”的项目中,我们将探讨如何利用Hibernate来构建一个完整的影院售票应用。这个项目可能是在北大青鸟的两年课程中的一个重要实践环节,旨在提升学员对数据库操作、对象关系映射...
SessionFactory的创建通常在应用启动时完成,通过配置文件和hibernate-cfg.xml进行初始化。 2. **Session**:Session是与数据库交互的主要接口,它负责持久化对象的创建、更新和删除,以及执行查询。Session内部...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。JUnit是Java编程语言的一个单元测试框架,而jdbc则是Java数据库连接,它...
`Session`是短暂事务性操作的上下文。 ```java Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setName("John Doe"); user.setEmail("john.doe...
使用Hibernate,开发者无需直接使用JDBC API,因为Hibernate封装了大部分数据库操作的细节,从而可以减少重复代码,提高开发效率。 Hibernate操作数据库时,主要通过以下几个核心组件来实现持久层操作: 1. **...
本教程“传智播客JDBC_完成对数据库的CRUD操作”主要涵盖了如何利用JDBC进行数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 一、创建(Create) 创建数据通常涉及到...
Hibernate提供了一系列便捷的方法,如save()、get()、update()和delete(),来完成这些操作。 7. **查询语言HQL**:Hibernate查询语言(HQL)是基于面向对象的查询语言,类似于SQL,但更贴近于Java对象。HQL允许...
当一个数据库操作跨越多个DAO(数据访问对象)调用时,Spring会确保这些操作在一个事务内完成。这意味着,如果任何一步出错,整个事务都将被回滚,保持数据的一致性。 在实践中,开发者需要考虑事务隔离级别,这是...
【使用Hibernate完成对象持久化】 在Java开发中,对象持久化是将应用程序中的对象与数据库中的数据进行绑定,使得对象的状态能够在系统重启后仍然保持。Hibernate是一个强大的对象关系映射(ORM)框架,它简化了...
2. **驱动兼容性**: 检查使用的JDBC驱动是否与Hibernate版本和数据库版本兼容。有时升级或降级驱动可以解决问题。 3. **SQL查询异常**: Hibernate的HQL或Criteria API执行出错时,应检查查询语法是否正确,以及实体...
在给定的"SuperHibernateEntityDao.java"文件中,可能包含了一个自定义的DAO基类,该类扩展了Hibernate的通用DAO操作,并可能实现了JDBC SQL分页的方法。这样的类通常会有一个用于执行分页查询的方法,比如`...