hibernate操做數據庫總結

這篇文章用於總結hibernate操做數據庫的各類方法sql

1、query方式數據庫

一、hibernate使用原生態的sql語句執行數據庫查詢編程

有些時候有些開發人員總以爲用hql語句不踏實,程序出現了錯誤,就猜想由於不是原生態的sql語句,數據庫不支持,所以情願選擇回到jdbc時 代。這樣既耗時耗力,又破壞面向對象的編程。其實,hibernate已經考慮到這個問題,hibernate能夠執行原生態的sql語句,正對每種數據 庫,你能夠寫對應的sql語句,而後用createSQLQuery(sql)便可。session

 

/**
		 * 本地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

二、query執行查詢操做(基本方式,字符串鏈接方式生成hql語句)this

query執行查詢操做,能夠返回惟一對象或者是對象列表hibernate

(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返回惟一對象ci

 

 

/**
		 * hql的檢索方式,執行查詢數據庫操做,返回惟一對象
		 * 採用hql語句鏈接方式
		 */
		Session session = this.getSession();
		String hql = "select * from CourseDO where CId="+id+"";
		Query query = session.createQuery(hql);// 本地SQL檢索方式
		query.uniqueResult();// 返回持久化的list

三、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();// 檢索單個對象,返回惟一值

四、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 語句

2、hibernate模版方法

利用hibernate模版方法執行hql語句很是簡單,可是有時候不是那麼方便,能夠本身選擇使用。

 

一、hibernateTemplate查詢數據庫

/**
		 * 利用hibernate模版方法進行查詢,綁定參數形式
		 * 
		 */
		String hql = "from CourseDO where CId=? and Date=?";
		List<CourseDO> courseDOs = getHibernateTemplate().find(hql, c_id,
				new Date());

二、hibernateTemplate更新數據

 

 

/**
		 * 利用hibernate模版方法進行更新,綁定參數形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().update(courseDO);

三、hibernateTemplate插入數據

/**
		 * 利用hibernate模版方法進行插入,綁定參數形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().save(courseDO);

四、hibernateTemplate刪除數據

/**
		 * 利用hibernate模版方法進行刪除,綁定參數形式
		 * 
		 */
		List<CourseDO> courseDOs = getHibernateTemplate().delete(courseDO);
相關文章
相關標籤/搜索