- 浏览: 980860 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 9699今天想用Hibernate的Restriction ... -
Hibernate Gossip: Bag
2009-09-14 16:37 1412Bag是集合,与Set不同的是,Bag允许重复的元素,在Jav ... -
hibernate的Restrictions用方说明
2009-06-15 21:09 1833方法 说明 Restric ... -
Hibernate完成常用的JDBC操作下
2009-05-29 16:38 1397一方: package com.mengya.dao; i ... -
Native SQL查询
2009-04-29 22:02 1520你也可以使用你的数据 ... -
hibernate调用存储过程来分页
2009-04-29 07:56 3688虽然Hibernate帮助我们完成了分页功能,但若 ... -
Hibernate中实体对象的生命周期
2009-04-21 22:58 1376实体对象的生命周期在Hibernate应用中是一个很关键的概念 ... -
HibernateTemplate的常规用法
2009-04-21 22:55 1285HibernateTemplate提供非常多的常用方法来完成基 ... -
cascade与inverse的作用
2009-04-21 22:52 1728Cascade:用来说明当对主对象进行某种操作时是否对其关联的 ... -
Hibernate一对一的使用
2009-04-21 22:50 1754数据库:create table student( id ... -
Hibernate多对多说明
2009-04-21 22:47 1359数据库:--学生表create table stu( s_i ... -
query.iterate()与query.list()的区别
2009-04-21 22:46 1959Query query=this.GetSession().c ... -
Hibernate中的Query一些基本用法
2009-04-21 22:45 4990/*** 添加*/public void save(Stu s ... -
Hibernate中Criteria的使用
2009-04-21 22:42 2771/*** 使用Criteria全查询*/public List ... -
Hibernate关联表特殊查询(一方)inner join fetch,left join fet
2009-04-21 22:40 17971inner join fetch/*** 一对多中的一方inn ... -
Hibernate关联表特殊查询(多方)上
2009-04-21 22:39 2312/*** 多条件组合查询*/ public List get ... -
get和load的区别
2009-04-20 17:20 1158(1)load()方法从来就是假定数据在数据库中是存在的,在使 ... -
Hibernate中的ORM关系映射主键生成方式即(Generator的class值)
2009-04-20 17:18 2109主键产生器可选项说明 ...
相关推荐
Hibernate是一个非常优秀的,成熟的ORM框架,可以在不用写SQL语句的情况下,仅仅对持久化对象进行操作便可以完成对数据库的操作,可以使开发者更为专注于业务代码的编写,提高了开发效率,相对于JDBC而言,大大简化...
1.3.2 用SQL/JDBC手工编写持久层 1.3.3 使用序列化 1.3.4 面向对象的数据库系统 1.3.5 其他选项 1.4 ORM 1.4.1 什么是ORM 1.4.2 一般的ORM问题 1.4.3 为什么选择ORM 1.4.4 ...
使用Hibernate 必须首先提供这些基础信息以完成初始化工作,为后继操作做好准 备。这些属性在hibernate配置文件(hibernate.cfg.xml 或hibernate.properties)中加以设 定(参见前面“Hibernate配置”中的示例配置...
把你的JDBC驱动拷贝到lib/目录下,修改一下src/hibernate.properties,指定其中你的数据库的信息。进入命令行,切换到你的发行包的目录,输入ant eg(使用了Ant),或者在Windows操作系统中使用build eg。 <br>把...
mySQL实现数据库的增删查改操作。 需求: 对单一账户进行创建、修改、删除、查询...持久层:负责数据的读取(jdbc,hibernate) 横向分层(业务层与持久层按抽象程度分): 抽象层 实现层 表现层不需要再进行横向分层
把你的JDBC驱动拷贝到lib/目录下,修改一下src/hibernate.properties,指定其中你的数据库的信息。进入命令行,切换到你的发行包的目录,输入ant eg(使用了Ant),或者在Windows操作系统中使用build eg。 <br>把...
12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...
Hibernate是一个比较流行的持久层框架,它对JDBC进行轻量级的封装,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。本例子为hibernate入门例子,操作access数据库。
12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...
我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...
12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...
executeUpdate:返回int类型的值,代表的是,操作执行完成后,受影响的数据库的行计数(针对于insert,update,delete) executeQuery:返回的是ResultSet ResultSet:类似于指针或者游标的东西,里边保存的不是所有的...
在线考试系统用的是ssh稳定框架整合,为了保证用hibernate操作数据库不出错,所有的数据库表不是用mysql企业管理器或查询分析器来完成的,而是用hibernate的pojo类和hbm.xml文件导入的,然而,配置这些关联映射却很...
程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 ...
程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 ...
相对Hibernate和Apache OJB 等“一站式”ORM解决方案而...或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
相对Hibernate和Apache OJB 等“一站式”ORM解决方案而...或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执 行。
相对Hibernate和Apache OJB 等“一站式”ORM解决方案而...或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执 行。