您的位置:首页 > 产品设计 > UI/UE

Hibernate中的Query一些基本用法

2012-12-27 22:37 363 查看
/*

**

* 添加

*/

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;

}

/**

* 根据主键查询

*/

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;

}

/**

* 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;

}

/**

* 统计函数

*/

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;

}

/**

* 条件统计

*/

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;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: