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

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.ArrayList;
  13. import java.util.List;
  14. import com.mycompany.database.Database;
  15. import com.mycompany.news.dao.ColumnDAO;
  16. import com.mycompany.news.dto.Column;
  17. import com.mycompany.tools.DTOPopulator;
  18. import com.opensymphony.util.BeanUtils;
  19. /**
  20.  * @author Administrator
  21.  *
  22.  * TODO To change the template for this generated type comment go to
  23.  * Window - Preferences - Java - Code Style - Code Templates
  24.  */
  25. public class ColumnDAOImpl implements ColumnDAO{
  26. Connection connection = null;
  27. /**
  28.  * @return Returns the connection.
  29.  */
  30. public Connection getConnection() {
  31. return connection;
  32. }
  33. /**
  34.  * @param connection The connection to set.
  35.  */
  36. public void setConnection(Connection connection) {
  37. this.connection = connection;
  38. }
  39. public void addColumn(Column column) throws SQLException{
  40. String sql="insert into News_Column (" +
  41. "Column_Name," +
  42. "Column_Order," +
  43. "Column_Status," +
  44. "Channel_id," +
  45. "Parent_Column," +
  46. "Top_Column," +
  47. "current_level," +
  48. "leaf_Node) values(?,?,?,?,?,?,?,?)";
  49. PreparedStatement ps = connection.prepareStatement(sql);
  50. int i=1;
  51. ps.setString(i++,column.getColumnName());
  52. ps.setInt(i++,column.getColumnOrder().intValue());
  53. ps.setInt(i++,column.getColumnStatus().intValue());
  54. ps.setLong(i++,column.getChannelId().longValue());
  55. ps.setLong(i++,column.getParentColumn().longValue());
  56. ps.setLong(i++,column.getTopColumn().longValue());
  57. ps.setInt(i++,column.getCurrentLevel().intValue());
  58. ps.setInt(i++,column.getLeafNode().intValue());
  59. ps.executeUpdate();
  60. ps.close();
  61. }
  62. public void updateColumn(Column Column)throws Exception{
  63. List columns = new ArrayList();
  64. columns.add("column_Name");
  65. columns.add("column_Order");
  66. columns.add("column_Status");
  67. columns.add("parent_Column");
  68. columns.add("top_Column");
  69. columns.add("channel_Id");
  70. columns.add("current_Level");
  71. columns.add("leaf_Node");
  72. StringBuffer sqlString=new StringBuffer();
  73. sqlString.append("update News_Column set ");
  74. for(int i=0;i<columns.size();i++){
  75. if(columns.size()-1==i)
  76. sqlString.append(columns.get(i)+"=? ");
  77. else
  78. sqlString.append(columns.get(i)+"=?, ");
  79. }
  80. sqlString.append(" where Column_id=?");
  81. System.out.println(sqlString);
  82. PreparedStatement ps = connection.prepareStatement(sqlString.toString());
  83. for(int i=0;i<columns.size();i++){
  84. ps.setObject(i+1,BeanUtils.getValue(Column,((String)columns.get(i)).replaceAll("_","")));
  85. }
  86. ps.setLong(columns.size()+1,Column.getColumnId().longValue());
  87. ps.executeUpdate();
  88. ps.close();
  89. }
  90. public void deleteColumn(Column Column)throws Exception{
  91. String sqlString="update News_Column set Column_Status=-1 where Column_id=?";
  92. PreparedStatement ps = connection.prepareStatement(sqlString);
  93. ps.setLong(1,Column.getColumnId().longValue());
  94. ps.executeUpdate();
  95. ps.close();
  96. }
  97. public List listAllColumns() throws Exception{
  98. PreparedStatement ps = connection.prepareStatement("select * from News_Column where Column_Status>=0 order by column_order");
  99. ResultSet rs = ps.executeQuery();
  100. List list = DTOPopulator.populate(rs,Column.class);
  101. for(int i=0;i<list.size();i++){
  102. Column c = (Column) list.get(i);
  103. }
  104. rs.close();
  105. ps.close();
  106. return list;
  107. }
  108. public List listColumns(Column columnCondition,int pageNo,int pageSize)throws Exception{
  109. boolean nameCondition=false;
  110. boolean parentCondition=false;
  111. boolean topCondition=false;
  112. StringBuffer stringBuffer = new StringBuffer();
  113. stringBuffer.append("select * from News_Column where Column_Status>=0 ");
  114. if(columnCondition.getColumnName()!=null&&!columnCondition.getColumnName().trim().equals("")){
  115. stringBuffer.append(" and Column_name like ?");
  116. nameCondition = true;
  117. }
  118. if(columnCondition.getParentColumn()!=null){
  119. stringBuffer.append(" and Parent_Column =?");
  120. parentCondition= true;
  121. }
  122. if(columnCondition.getTopColumn()!=null){
  123. stringBuffer.append(" and Top_Column =?");
  124. topCondition= true;
  125. }
  126. stringBuffer.append(" order by column_order limit ?,? ");
  127. PreparedStatement ps = connection.prepareStatement(stringBuffer.toString());
  128. int i=1;
  129. if(nameCondition)
  130. ps.setString(i++,"%"+columnCondition.getColumnName().trim()+"%");
  131. if(parentCondition)
  132. ps.setLong(i++,columnCondition.getParentColumn().longValue());
  133. if(topCondition)
  134. ps.setLong(i++,columnCondition.getTopColumn().longValue());
  135. ps.setInt(i++,(pageNo-1)*pageSize);
  136. ps.setInt(i++,pageSize);
  137. ResultSet rs = ps.executeQuery();
  138. return DTOPopulator.populate(rs,Column.class);
  139. }
  140. public Column getByID(long id)throws Exception{
  141. PreparedStatement ps = connection.prepareStatement("select * from News_Column where  column_id=?");
  142. ps.setLong(1,id);
  143. ResultSet rs = ps.executeQuery();
  144. return (Column) DTOPopulator.populate(rs,Column.class).get(0);
  145. }
  146. public static void main(String[] args) {
  147. ColumnDAO dao = new ColumnDAOImpl();
  148. Connection conn =null;
  149. try {
  150. conn = Database.getConnection();
  151. dao.setConnection(conn);
  152. Column Column=new Column();
  153. Column.setColumnId(new Long(2));
  154. Column.setColumnName("国际新闻1");
  155. Column.setColumnStatus(new Integer(1));
  156. // dao.addColumn(Column);
  157. dao.updateColumn(Column);
  158. Database.commit();
  159. dao.listAllColumns();
  160. } catch (Exception e) {
  161. // TODO Auto-generated catch block
  162. e.printStackTrace();
  163. }finally{
  164. Database.releaseConnection(conn);
  165. }
  166. }
  167. }