HibernateTemplate 에서 sql 문 구 를 실행 합 니 다.

HibernateTemplate 에서 sql 문 구 를 실행 합 니 다:
컵 기구 에 뚜렷 한 잘못 이 있다 니.   getSession ()  "session" 은 익명 의 내부 클래스 의 입 참 session 을 사용 합 니 다. 그렇지 않 으 면 Spring 은 session 의 생명주기 관 리 를 하지 않 습 니 다.
업데이트 (update) 및 삭제 (delete) 가능 한 sql 만 들 기:
@SuppressWarnings("unchecked")    
    public int excuteSQLUpdate(final String sql, final Object[] obj){
        return getHibernateTemplate().execute(new HibernateCallback<Integer>() {
            public Integer doInHibernate(Session session) throws HibernateException, SQLException {
                SQLQuery q = session.createSQLQuery(sql);//   : SQLQuery q = getSession().createSQLQuery(sql);
                if(obj != null && obj.length > 0){
                    for(int i = 0;i < obj.length; i++){// JDBC    ,         0  , JDBC PreparedStatement         1  
                        q.setParameter(i, obj[i]);
                    }
                }
                return q.executeUpdate();
            }
        });

    }

검색 (select) 을 만 드 는 sql:
   
@SuppressWarnings("unchecked")
    public<T> List<T> excuteSQLQuery(final String sql, final Object[] obj, final Class<T> entityType){
        return getHibernateTemplate().execute(new HibernateCallback<List<T>>() {
            public List<T> doInHibernate(Session session) throws HibernateException, SQLException {
                SQLQuery q = session.createSQLQuery(sql);//   : SQLQuery q = getSession().createSQLQuery(sql);
                if(obj != null && obj.length > 0){
                    for(int i = 0;i < obj.length; i++){// JDBC    ,         0  , JDBC PreparedStatement         1  
                        q.setParameter(i, obj[i]);
                    }
                }
                return q.addEntity(entityType).list();
            }
        });
        
    }

좋은 웹페이지 즐겨찾기