zoukankan      html  css  js  c++  java
  • (转)Hibernate中的Query一些基本用法

    /**
    * 添加
    */
    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;
    }

    转自http://hlbng.iteye.com/blog/401548

  • 相关阅读:
    element UI input 框不能输入问题
    微信小程序 自定义header 组件
    React 父组件调用子组件函数
    node 分页查询时,如何获取总数和分页数据
    Linux 根据jar包名杀死进程
    使用小乌龟TortiseGit生成密钥教程详解
    SQL/变量
    SQL/视图
    SQL/事务控制语言TCL(Transaction Control Language)
    SQL/数据定义语言DDL(Data Definition Language)
  • 原文地址:https://www.cnblogs.com/csy8fs/p/3755081.html
Copyright © 2011-2022 走看看