請教一個hibernate組合查詢的問題,謝謝!

          Posted on 2007-05-24 20:07 姜海龍 閱讀(1126) 評論(2)  編輯  收藏 所屬分類: 個人收藏
          我有7個表
          1、user存儲用戶信息
          2、role存儲角色信息
          3、menu存儲菜單信息,其中每個菜單對應(yīng)一個function信息
          4、function存儲功能模塊信息
          5、o_func_user存儲用戶和功能關(guān)聯(lián)關(guān)系
          6、o_func_role存儲角色和功能關(guān)聯(lián)關(guān)系
          7、o_role_user存儲角色和用戶關(guān)聯(lián)關(guān)系
          我要根據(jù)用戶ID取得所擁有的菜單權(quán)限,當(dāng)然寫SQL語句很簡單,但是對HSQL不是很熟悉,請問如何用HSQL取得所擁有的菜單信息?

          Feedback

          # ssh框架怎樣對數(shù)據(jù)庫做修改、添加操作?[未登錄]  回復(fù)  更多評論   

          2007-05-30 11:54 by 新人
          1.具體的Action里不會寫!!
          DAO接口
          *****************
          package com.linkingstar.bis.common.dao;

          import java.util.List;

          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數(shù)據(jù)表的DAO接口
          *
          */

          public interface IUserDAO {

          UserPO get(String userId);

          void save(UserPO userPO);

          void update(UserPO userPO);

          void remove(UserPO userPO);

          List findAll();
          List findAll2(String usercode);
          List findODD(String usercode);


          }
          *****************
          DAO
          *****************
          package com.linkingstar.bis.common.dao;

          import java.util.ArrayList;
          import java.util.List;

          import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

          import com.linkingstar.bis.common.model.UserPO;
          import com.linkingstar.bis.common.dao.IUserDAO;

          /**
          *
          * 用戶數(shù)據(jù)表的DAO實現(xiàn)類
          *
          */
          public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO {
          private String LOAD_BY_ALL = "from UserPO userPO";
          private String LOAD_BY_ODD = "from UserPO userPO where userPO.usercode=?";
          public UserDAOImpl() {
          super();
          }
          public UserPO get(String userId) {
          try{
          return (UserPO) this.getHibernateTemplate().get(UserPO.class,userId);
          }catch(Exception ex){
          ex.printStackTrace();
          return null;
          }
          }
          public void save(UserPO userPO) {
          try {
          this.getHibernateTemplate().save(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public void update(UserPO userPO) {
          try {
          this.getHibernateTemplate().update(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public void remove(UserPO userPO) {
          try {
          this.getHibernateTemplate().delete(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public List findAll() {
          try{
          return this.getHibernateTemplate().find(LOAD_BY_ALL);
          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          public List findODD(String usercode) {
          try{
          this.getHibernateTemplate().find(LOAD_BY_ODD,usercode);
          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          public List findAll2(String usercode) {
          try{
          String s="改 前 查詢 ";
          System.out.println(s);
          return this.getHibernateTemplate().find(LOAD_BY_ALL);

          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          }
          ********************
          2.BO
          BO接口
          *************
          package com.linkingstar.bis.common.service;

          import java.util.List;

          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數(shù)據(jù)表的BO接口
          *
          */

          public interface IUserService {

          public UserPO get(String userId);

          public void save(UserPO userPO);

          public void update(UserPO userPO);

          public void remove(UserPO userPO);

          List findAll();
          List findAll2(String usercode);
          List findODD(String usercode);
          }
          ***********
          BO
          ***********
          package com.linkingstar.bis.common.service;

          import java.util.List;

          import com.linkingstar.bis.common.dao.IUserDAO;
          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數(shù)據(jù)表的BO實現(xiàn)類
          *
          */

          public class UserServiceImpl implements IUserService{

          private IUserDAO userDAO;
          public IUserDAO getUserDAO(){
          return this.userDAO;
          }
          public void setUserDAO(IUserDAO userDAO){
          this.userDAO = userDAO;
          }

          /**
          *
          */
          public UserServiceImpl() {
          super();
          }
          /**
          *
          */
          public UserPO get(String userId) {
          return this.getUserDAO().get(userId);
          }
          public void save(UserPO userPO) {
          this.getUserDAO().save(userPO);
          }
          public void update(UserPO userPO) {
          this.getUserDAO().update(userPO);
          }
          public void remove(UserPO userPO) {
          this.getUserDAO().remove(userPO);
          }
          public List findAll() {
          this.getUserDAO().findAll();
          return this.getUserDAO().findAll();
          }
          public List findAll2(String usercode) {
          this.getUserDAO().findAll2(usercode);
          return this.getUserDAO().findAll2(usercode);
          }
          public List findODD(String usercode){
          this.getUserDAO().findODD(usercode);
          return this.getUserDAO().findODD(usercode);
          }
          }
          ********

          # re: 請教一個hibernate組合查詢的問題,謝謝!  回復(fù)  更多評論   

          2007-06-07 11:26 by driver
          Hibernate對多表聯(lián)合查詢還不健全,現(xiàn)有的方法很不方便
          建議你用spring的jdbcTemplate查詢。

          posts - 9, comments - 19, trackbacks - 0, articles - 1

          Copyright © 姜海龍

          主站蜘蛛池模板: 马山县| 鄯善县| 介休市| 石楼县| 甘肃省| 萝北县| 孟州市| 广安市| 桐乡市| 崇文区| 西乌珠穆沁旗| 梁河县| 射洪县| 卢氏县| 镇原县| 兰州市| 罗源县| 辽中县| 达孜县| 靖江市| 平安县| 文登市| 柳林县| 望城县| 青龙| 资溪县| 延长县| 灵璧县| 大关县| 大宁县| 明溪县| 铜鼓县| 连城县| 上饶县| 苍山县| 柳河县| 汾阳市| 富蕴县| 江安县| 武夷山市| 阿拉善盟|