NewsAttributeDAOImpl.java
上传用户:junmaots
上传日期:2022-07-09
资源大小:2450k
文件大小:5k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /*
  2.  * Created on 2005-11-10
  3.  *
  4.  * TODO To change the template for this generated file go to
  5.  * Window - Preferences - Java - Code Style - Code Templates
  6.  */
  7. package com.mycompany.news.dao.impl;
  8. import java.sql.Connection;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.util.List;
  13. import com.mycompany.database.Database;
  14. import com.mycompany.news.dao.NewsAttributeDAO;
  15. import com.mycompany.news.dto.News;
  16. import com.mycompany.news.dto.NewsAttribute;
  17. import com.mycompany.tools.DTOPopulator;
  18. /**
  19.  * @author Administrator
  20.  *
  21.  * TODO To change the template for this generated type comment go to
  22.  * Window - Preferences - Java - Code Style - Code Templates
  23.  */
  24. public class NewsAttributeDAOImpl implements NewsAttributeDAO{
  25. Connection connection = null;
  26. /**
  27.  * @return Returns the connection.
  28.  */
  29. public Connection getConnection() {
  30. return connection;
  31. }
  32. /**
  33.  * @param connection The connection to set.
  34.  */
  35. public void setConnection(Connection connection) {
  36. this.connection = connection;
  37. }
  38. public News getByID(long id)throws Exception{
  39. PreparedStatement ps = connection.prepareStatement("select * from news_attribute where entity_id=?");
  40. ps.setLong(1,id);
  41. ResultSet rs = ps.executeQuery();
  42. return (News) DTOPopulator.populate(rs,NewsAttribute.class).get(0);
  43. }
  44. public String getAttributeValue(long entityid,String attributeName,int attrType) throws SQLException{
  45. PreparedStatement ps = connection.prepareStatement("select news_attr_value from news_attribute where entity_id=? and news_attr_name=? and news_attr_type=?");
  46. int i=1;
  47. ps.setLong(i++,entityid);
  48. ps.setString(i++,attributeName);
  49. ps.setInt(i++,attrType);
  50. ResultSet rs = ps.executeQuery();
  51. if(rs.next()){
  52. return rs.getString("news_attr_value");
  53. }
  54. return null;
  55. }
  56. public List getRecommendedNews(long columnid) throws Exception {
  57. // TODO Auto-generated method stub
  58. String sqlStr=" select ni.* from News_Info ni left join news_attribute na on ni.news_id=na.entity_id where na.news_attr_name=? and na.news_attr_value=? and ni.column_id=?";
  59. PreparedStatement ps = connection.prepareStatement(sqlStr);
  60. ps.setString(1,"is_recommend");
  61. ps.setString(2,"true");
  62. ps.setLong(3,columnid);
  63. ResultSet rs = ps.executeQuery();
  64. return DTOPopulator.populate(rs,News.class);
  65. }
  66. public synchronized Long getCurrentID() throws SQLException {
  67. PreparedStatement preparedStatement = connection.prepareStatement("select max(ni.news_attribute_id) as m from news_attribute ni");
  68. ResultSet resultSet = preparedStatement.executeQuery();
  69. if(resultSet.next()){
  70. long currentID = resultSet.getLong("m");
  71. return new Long(currentID);
  72. }
  73. return null;
  74. }
  75. public void recommendNews(long news) throws Exception {
  76. String sqlStr="insert into news_attribute(news_attr_type,news_attr_name, news_attr_value,entity_id) values(?,?,?,?)";
  77. PreparedStatement ps = connection.prepareStatement(sqlStr);
  78. int i=1;
  79. ps.setInt(i++,0);
  80. ps.setString(i++,"is_recommend");
  81. ps.setString(i++,"true");
  82. ps.setLong(i++,news);
  83. ps.executeUpdate();
  84. }
  85. public void cancelRecommend(long news) throws Exception {
  86. String sqlStr="delete from news_attribute where news_attr_name=? and news_attr_value=? and entity_id=?";
  87. PreparedStatement ps = connection.prepareStatement(sqlStr);
  88. int i=1;
  89. ps.setString(i++,"is_recommend");
  90. ps.setString(i++,"true");
  91. ps.setLong(i++,news);
  92. ps.executeUpdate();
  93. }
  94. public static void main(String[] args) {
  95. NewsAttributeDAO dao = new NewsAttributeDAOImpl();
  96. Connection conn =null;
  97. try{
  98. conn = Database.getConnection();
  99. dao.setConnection(conn);
  100. String attributeValue = dao.getAttributeValue(13,"visit_count",0);
  101. System.out.println("attributeValue = "+attributeValue);
  102. }catch(Exception e){
  103. e.printStackTrace();
  104. }finally{
  105. Database.releaseConnection(conn);
  106. }
  107. }
  108. protected void deleteAttribute(Long entityId,int entityType) throws SQLException{
  109. String sqlString="delete from News_Attribute where entity_id=? and news_attr_type=?";
  110. PreparedStatement ps = connection.prepareStatement(sqlString);
  111. ps.setLong(1,entityId.longValue());
  112. ps.setInt(2,entityType);
  113. ps.executeUpdate();
  114. ps.close();
  115. }
  116. /* (non-Javadoc)
  117.  * @see com.mycompany.news.dao.NewsAttributeDAO#deleteByNews(com.mycompany.news.dto.News)
  118.  */
  119. public void deleteByNews(News news)throws Exception {
  120. // TODO Auto-generated method stub
  121. deleteAttribute(news.getNewsId(),0);
  122. }
  123. }