Hibernate執行SQL語句實現查詢修改功能!


今天玩Hibernate時突然就想寫寫SQL語句查詢。。。

DAO :

1 //查詢
2 public List<?> createSqlQueryList(final String queryString);
3 //修改
4 public Boolean createSqlUpdate(final String queryString);

 

DAOImpl:

 1     /**
 2      * sqlQuery 返回list
 3      */
 4     public List<?> createSqlQueryList(final String queryString) {
 5         return (List<?>) getHibernateTemplate().execute(
 6                 new HibernateCallback<Object>() {
 7                     public List<?> doInHibernate(
 8                             org.hibernate.Session session)
 9                             throws org.hibernate.HibernateException {
10                         SQLQuery query = session.createSQLQuery(queryString);//執行session語句!
11                         List<?> rows = query.list();
12                         if (session != null && session.isConnected()) {
13                             session.close();
14                         }
15                         return rows;
16                     }
17                 });
18         }        

 

 

 1     /**
 2      * sqlQuery 執行sql語句修改方法
 3      */
 4     public Boolean createSqlUpdate(final String queryString) {
 5         return (Boolean) getHibernateTemplate().execute(
 6                 new HibernateCallback<Object>() {
 7                     public Boolean doInHibernate(
 8                             org.hibernate.Session session)
 9                           throws org.hibernate.HibernateException {
10                   session.createSQLQuery(queryString).executeUpdate();//執行語句.executeUpdate方法
11                         if (session != null && session.isConnected()) {
12                             session.close();
13                         }
14                         return true;
15                     }
16                 });
17     }

 注意(區別):

  1.  ResultSet executeQuery(String sql); 執行SQL查詢,並返回ResultSet 對象。
  2. int executeUpdate(String sql); 可執行增,刪,改,返回執行受到影響的行數。
  3.  boolean execute(String sql); 可執行任何SQL語句,返回一個布爾值,表示是否返回ResultSet 。

每天一小步,加油aliang!!!


免責聲明!

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



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