hibernate操作數據庫總結


這篇文章用於總結hibernate操作數據庫的各種方法

一、query方式

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

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

 

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

2、query執行查詢操作(基本方式,字符串連接方式生成hql語句)

query執行查詢操作,可以返回唯一對象或者是對象列表

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

 

 

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

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

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

二、hibernate模版方法

利用hibernate模版方法執行hql語句非常簡單,但是有時候不是那么方便,可以自己選擇使用。

 

1、hibernateTemplate查詢數據庫

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

2、hibernateTemplate更新數據

 

 

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

3、hibernateTemplate插入數據

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

4、hibernateTemplate刪除數據

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




 



 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM