⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcdao.java

📁 功能完善的java开发框架
💻 JAVA
字号:
package news.ejb.dao;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import news.model.News;
import news.model.NewsOpinion;
import news.model.NewsType;
import news.model.User;

import org.apache.log4j.Logger;

import com.jdon.controller.model.PageIterator;
import com.jdon.model.query.PageIteratorSolver;
import com.jdon.servicelocator.ServiceLocatorException;
import com.jdon.servicelocator.ejb.ServiceLocator;


public class JdbcDao
    implements java.io.Serializable {

  private final static Logger logger = Logger.getLogger(JdbcDao.class);

  private DataSource dataSource;
  private PageIteratorSolver pageIteratorSolverOfType;
  private PageIteratorSolver pageIteratorSolverOfNews;
  private PageIteratorSolver pageIteratorSolverOfOpinion;
  
  
  
  public JdbcDao() {
    try {
      ServiceLocator sl = new ServiceLocator();
      dataSource = (DataSource) sl.getDataSource("java:/NewsDS");
      pageIteratorSolverOfType = new PageIteratorSolver(dataSource);
      pageIteratorSolverOfNews = new PageIteratorSolver(dataSource);
      pageIteratorSolverOfOpinion = new PageIteratorSolver(dataSource);
    }
    catch (ServiceLocatorException slx) {
      logger.error(slx);
    }
  }

//single query

  public NewsType getNewsType(String Id) throws Exception {
    logger.debug(" enter getNewsType for Id=" + Id);
    String GET_TYPE = "select  * from T_NEWS_TYPE where typeid = ?";
    List queryParams = new ArrayList();
    queryParams.add(Id);
     
    NewsType ret = null;
    try {
      List list = pageIteratorSolverOfType.queryMultiObject(queryParams, GET_TYPE);
      Iterator iter = list.iterator();
      if (iter.hasNext()) {
        Map map = (Map)iter.next();
        ret = new NewsType();
        ret.setTypeName((String)map.get("typename"));
        ret.setTypeId(Id);
      }
    }
    catch (Exception se) {
      throw new Exception("SQLException: " + se.getMessage());
    }
    return ret;
  }

  public PageIterator getNewsType(int start, int count) throws
      Exception {
    String GET_ALL_TYPES_ALLCOUNT =
        "select count(1) from T_NEWS_TYPE ";
    String GET_ALL_TYPES_ITEMS =
        "select typeid  from T_NEWS_TYPE ";
    return pageIteratorSolverOfType.getDatas("", GET_ALL_TYPES_ALLCOUNT,
                                             GET_ALL_TYPES_ITEMS, start, count);
  }

  public void clearCacheOfNewsType() {
    this.pageIteratorSolverOfType.clearCache();
  }

  public News getNews(String Id) throws Exception {
    logger.debug(" enter getNews for Id=" + Id);
    News ret = null;
    try {
      String GET_FIELD =
          "select  t1.newsid, t1.content, t1.subject, t1.typeid, t1.userId, t2.username from T_NEWS t1, t_user t2 where t1.userid = t2.userid and t1.newsid = ?";
      List queryParams = new ArrayList();
      queryParams.add(Id);
      
      List list = pageIteratorSolverOfNews.queryMultiObject(queryParams, GET_FIELD);
      Iterator iter = list.iterator();
      if (iter.hasNext()) {
        Map map = (Map)iter.next();
        ret = new News();
        ret.setContent((String)map.get("content"));
        ret.setSubject((String)map.get("subject"));
        ret.setNewsId(Id);
        ret.setNewsType(getNewsType((String)map.get("typeid")));
        User user = new User();
        user.setUserId((String)map.get("userId"));
        user.setUserName((String)map.get("username"));
        ret.setUser(user);
      }


      String GET_OP =
          "select  * from T_NEWS_OPINION where newsid = ?";
      list = pageIteratorSolverOfOpinion.queryMultiObject(queryParams, GET_OP);
      iter = list.iterator();
      Collection ops = new ArrayList();
      while (iter.hasNext()) {
        Map map = (Map)iter.next();
        NewsOpinion op = new NewsOpinion();
        op.setOpId((String)map.get("opid"));
        op.setOpContent((String)map.get("opcontent"));
        ops.add(op);
      }
      ret.setOpinions(ops);
    }
    catch (Exception se) {
      throw new Exception("SQLException: " + se.getMessage());
    }
    return ret;
  }

  public PageIterator getNews(String typeid, int start, int count) throws
      Exception {
    logger.debug(" enter getNews");
    String GET_ALL_ITEMS_ALLCOUNT =
        "select count(1) from T_NEWS ";
    String GET_ALL_ITEMS =
        "select newsid  from T_NEWS ";
    if (typeid != null){
      GET_ALL_ITEMS_ALLCOUNT = GET_ALL_ITEMS_ALLCOUNT + " where typeid = ? ";
      GET_ALL_ITEMS = GET_ALL_ITEMS +  " where typeid = ? ";
    }else{
        logger.debug(" typeid is null");
    }
    return pageIteratorSolverOfNews.getDatas(typeid, GET_ALL_ITEMS_ALLCOUNT,
                                             GET_ALL_ITEMS, start, count);
  }



  public NewsOpinion getNewsOp(String Id) throws Exception {
    NewsOpinion ret = null;
    try {
      String GET_OP =
          "select  * from T_NEWS_OPINION where opid = ?";
      List queryParams = new ArrayList();
      queryParams.add(Id);
      
      List list = pageIteratorSolverOfOpinion.queryMultiObject(queryParams, GET_OP);
      Iterator iter = list.iterator();
      if (iter.hasNext()) {
        ret = new NewsOpinion();
        Map map = (Map)iter.next();
        ret.setOpContent((String)map.get("opcontent"));
        ret.setOpId(Id);

      }
    }
    catch (Exception se) {
      throw new Exception("SQLException: " + se.getMessage());
    }
    return ret;
  }

  public PageIterator getNewsOpinions(String newsid, int start, int count) throws
      Exception {
    String GET_ALL_OPS_ALLCOUNT =
        "select count(1) from T_NEWS_OPINION where newsid = ? ";
    String GET_ALL_OPS_ITEMS =
        "select opid  from T_NEWS_OPINION where newsid = ? ";
    return pageIteratorSolverOfNews.getDatas(newsid, GET_ALL_OPS_ALLCOUNT,
                                             GET_ALL_OPS_ITEMS, start, count);
  }

  public void clearCacheOfNewsOpinion() {
    pageIteratorSolverOfOpinion.clearCache();
  }
  public User getUserByName(String username) throws Exception {
        logger.debug(" getUserByName " + username);
        User ret = null;
        try {
          String GET_USER =
              "select  * from t_user where username = ?";
          List queryParams = new ArrayList();
          queryParams.add(username);
          
          List list = pageIteratorSolverOfNews.queryMultiObject(queryParams, GET_USER);
          Iterator iter = list.iterator();
          if (iter.hasNext()) {
            Map map = (Map)iter.next();              
            ret = new User();
            ret.setUserName(username);
            ret.setUserId((String)map.get("userid"));
            ret.setPassword((String)map.get("password"));

          }
        }
        catch (Exception se) {
          throw new Exception("SQLException: " + se.getMessage());
        }
        return ret;
    }

  public void clearAllCache() {
      logger.debug(" clear  the cache");
      this.pageIteratorSolverOfNews.clearCache();
      this.pageIteratorSolverOfType.clearCache();
      pageIteratorSolverOfOpinion.clearCache();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -