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

📄 cardcom.java

📁 一个信息发布系统 基于jsp+servlet+tomcat 用户分管理员跟普通用户 普通用户有发布信息 查询信息 修改信息 回复信息 管理员拥有普通用户的功能 此外还具有删除信息 管理信息的回复的功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package control;
import model.*;
import java.sql.*;
import java.util.Vector;

public class CardCom 
{
	private Connection con;
    /**
     * 构造函数 取得与数据库的连接
     * @param url  数据库的url
     * @param database 数据库名
     * @param pasw 数据库的密码
     */
    public CardCom(String url,String database,String pasw)
    {
    	con = new GetConnection(url,database,pasw).getConnection();
    }
    /**
     * 添加新的帖子,帖子ID由数据库自动赋值
     * @param UserName
     * @param Title
     * @param Keyword
     * @param Content
     * @param PassOrNot
     * @param CName
     */
    public void aadCard(String FileName,String UserName,String Title,String Keyword,String Content,boolean PassOrNot,String CName,String CPath,String TitleDetail,String TuiJian,String Date,String zuozhe,String Souce)
    {
    	PreparedStatement pre1;
    	String sql = "insert into  cardinf(image,UserName,Title,Keyword,Content,PassOrNot,CName,CPath, TitleDetail,TuiJian,Date,zuozhe,Souce) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
    	try
    	{
    	
    		pre1 = con.prepareStatement(sql);
    		pre1.setString(1, FileName);
    		pre1.setString(2, UserName);
    		pre1.setString(3,Title);
    		pre1.setString(4, Keyword);
    		//pre1.setString(3,Keyword);
    		pre1.setString(5,Content);
    		pre1.setBoolean(6, PassOrNot);
    		pre1.setString(7,CName);
    		pre1.setString(8, CPath);
    		pre1.setString(9, TitleDetail);
    		pre1.setString(10, TuiJian);
    		pre1.setString(11,Date);
    		pre1.setString(12,zuozhe);
    		pre1.setString(13,Souce);
    		pre1.executeUpdate();
    		if(PassOrNot == true)  //如果是管理员发帖(管理员发帖的时候PassOrNot会被设置为真)则不用通过审核
    		{
    			new UserCom("jdbc:mysql://localhost/mybbs","root", "root123").addTieziShuliang(UserName);//增加该帖子所属作者的发贴数
    			new CategoryCom("jdbc:mysql://localhost/mybbs","root", "root123").addCCount(CName);//增加该帖子所受类别的贴子总数
    		}
    		//pre1.executeUpdate();
    		
    	}
    	catch(SQLException e){System.out.println("SQLException at aadCard");}
    }
    /**
     * 查询该帖子得有回复数
     * @param CardID
     * @return
     */
    public int getCount(int CardID)
    {
    	int count;
    	String sql = "select Counnt from cardinf where CardID = ?";
    	PreparedStatement pre;
        try
        {
        	pre = con.prepareStatement(sql);
        	pre.setInt(1,CardID);
        	ResultSet rs = pre.executeQuery();
        	if(rs.next())
        	{
        		count = rs.getInt("Counnt");
        	}
        	else 
        		count = 0;
        	return count;
        }
        catch(SQLException e){return 0;}
    }
    /**
     * 删除该帖子 只有管理员有该权限
     * 删除帖子的同时 要在用户表里修改用户发贴数  同时要在所属类别里面减少该类别的帖子数 若该帖子有回复  则在恢复表里删除所有回复记录
     * 在回复表中的记录
     * @param ID 帖子ID
     * @param UserName  帖子作者
     * @param CName 帖子所属类别
     */
    public boolean delCard(int ID)
    {
    	PreparedStatement pre;
        String sql = "delete from  cardinf where CardID = ?";
        Card card = getCard(ID);
        try
        {
           pre = con.prepareStatement(sql);
           pre.setInt(1, ID);
           pre.execute();
           new UserCom("jdbc:mysql://localhost/mybbs","root", "root123").delTieziShuliang(card.getUserName());//减少该帖子所属作者的发贴总数TieziShuliang
		   new CategoryCom("jdbc:mysql://localhost/mybbs","root", "root123").delCCount(card.getCName());//减少该帖子所属分类中的帖子总数CCount
           new HuiFuCom("jdbc:mysql://localhost/mybbs","root", "root123").delAllHuiFu(ID);//删除该帖子所有回复
		   //pre.execute();
		   return true;
         }
         catch(SQLException e){return false;}
    	
    }
    /**
     * 根据帖子ID  增加该帖子的回复数
     * @param Count 帖子回复数
     * @param CardID 帖子ID
     */
    public void addCount(int CardID)
    {
    	int count = 0;
    	PreparedStatement pre;
	    String sql = "update cardinf set Counnt = ? where CardID = ?";
	    //String sql2 = "select Counnt where CardID = ?";
	    try
		  {
			pre = con.prepareStatement(sql);
			count = getCount(CardID);   //取得该帖子的回复数
			pre.setInt(1, count+1);
			pre.setInt(2, CardID);
			pre.execute();    
		  }
		  catch(SQLException e){}
    }
    
    
    public void delCount(int CardID)
    {
    	int count = 0;
    	PreparedStatement pre;
	    String sql = "update cardinf set Counnt = ? where CardID = ?";
	    try
		  {
			pre = con.prepareStatement(sql);
			count = getCount(CardID);   //取得该帖子的回复数
			pre.setInt(1, count-1);
			pre.setInt(2, CardID);
			pre.execute();    
		  }
		  catch(SQLException e){}
    }
    
    public boolean updateCard(int CardID,String Content,String TitleDetail,String TuiJian,String Date)
    {
    	PreparedStatement pre;
	    String sql = "update cardinf set Content = ?,TitleDetail = ?,TuiJian = ?,Date = ? where CardID = ?";
	    try
		  {
			pre = con.prepareStatement(sql);
			pre.setString(1, Content);
			pre.setString(2, TitleDetail);
			pre.setString(3, TuiJian);
			pre.setString(4, Date);
			pre.setInt(5, CardID);
			pre.execute();    
		  }
		  catch(SQLException e){return false;}
		  return true;
    }
    /**
     * 根据帖子ID修改该帖子的 审核情况(是否通过审核) 只有管理员有该权限
     * 只有审核通过的帖子  才能在用户表里增加该用户的帖子数,才能在该帖子所属类别增加帖子总数目
     * @param PassOrNot 审核情况
     * @param CardID
     */
    public void updatePassOrNot(int CardID,String UserName,String CPath,String passornot)
    {
    	PreparedStatement pre;
    	if(passornot.equals("pass"))
    	{
    		String sql = "update cardinf set PassOrNot = ? where CardID = ?";
    	    try
    		  {
    			pre = con.prepareStatement(sql);
    			pre.setBoolean(1, true);
    			pre.setInt(2, CardID);
    			new UserCom("jdbc:mysql://localhost/mybbs","root", "root123").addTieziShuliang(UserName);//增加该帖子所属作者的发贴数
    			new CategoryCom("jdbc:mysql://localhost/mybbs","root", "root123").addCCount(CPath);//增加该帖子所受类别的贴子总数
    			pre.execute();    
    		  }
    		  catch(SQLException e){}
    	}
    	else
    	{
    		String sql = "delete from cardinf where CardID = ?";
    		try
  		  {
  			pre = con.prepareStatement(sql);
  			pre.setInt(1, CardID);
  			pre.execute();    
  		  }
  		  catch(SQLException e){}
    	}
    }
    /**
     * 获取该帖子详细资料
     * @param CardID
     * @return
     */
    public  Card  getCard(int CardID)
    {
    	PreparedStatement pre;
    	Card card  = new Card(CardID);
    	String sql = "select * from cardinf where CardID = ?";
    	try
      	{
      		pre = con.prepareStatement(sql);
      		pre.setInt(1, CardID);
      		ResultSet rs = pre.executeQuery();
      		if(rs.next())
      		{
      			card.setFileName(rs.getString("image"));
      			card.setUserName(rs.getString("UserName"));
      			card.setTitle(rs.getString("Title"));
      			card.setKyeword(rs.getString("Keyword"));
      			card.setContent(rs.getString("Content"));
      			card.setPassOrNot(rs.getBoolean("PassOrNot"));
      			card.setCName(rs.getString("CName"));
      			card.setCount(rs.getInt("Counnt"));
      			card.setCPath(rs.getString("CPath"));
      			card.setTitleDetail(rs.getString("TitleDetail"));
      			card.setTuiJian(rs.getString("TuiJian"));
      			card.setDate(rs.getString("Date"));
      			card.setZuozhe(rs.getString("zuozhe"));
      			card.setSouce(rs.getString("Souce"));
      			
      			return card;
      		}
      		
      		else
      			return null;
      	}
      	catch(SQLException e){return null;}
    }
    /**
     * 取出该页码数要显示的数据
     * @param CName  类别名
     * @param pagenum   页码数 每页15行
     * @return
     */
    public Vector getAllCardBySize(String CPath,int pagenum,String order_condition)
    {
    	PreparedStatement pre;
    	int begin = 0;
    	begin = (pagenum-1)*8;
    	Vector vc = new Vector();
    	String sort;
    	if(order_condition.equals("byTime"))
    		sort = new String("Date");
    	else
    		sort = new String("Counnt");
    	if(CPath.equals("all"))
    	{
    		String sql = "select * from cardinf where PassOrNot=true order by "+sort+" desc limit " + begin + ",8" ;
    		try
    		{
    			Statement st = con.createStatement();
    			ResultSet rs = st.executeQuery(sql);
    			while(rs.next())
        		{
        			Card card = new Card(rs.getInt("CardID"));
        			card.setFileName(rs.getString("image"));
        			card.setUserName(rs.getString("UserName"));
          			card.setTitle(rs.getString("Title"));
          			card.setKyeword(rs.getString("Keyword"));
          			card.setContent(rs.getString("Content"));
          			card.setPassOrNot(rs.getBoolean("PassOrNot"));
          			card.setCName(rs.getString("CName"));
          			card.setCount(rs.getInt("Counnt"));
          			card.setCPath(rs.getString("CPath"));
          			card.setTitleDetail(rs.getString("TitleDetail"));
          			card.setTuiJian(rs.getString("TuiJian"));
          			card.setDate(rs.getString("Date"));
          			card.setZuozhe(rs.getString("zuozhe"));
          			card.setSouce(rs.getString("Souce"));
                    vc.add(card);
        		}
        		return vc;
    		}
    		catch(Exception e){return null;}
    		
    	}
    	else
    	{
    		String sql = "select * from cardinf where (CPath LIKE '" + CPath +"%' or CPath = '" +CPath+"') and PassOrNot = ? order by "+sort+" desc limit " + begin + ",8" ;
    		try
            {
            	pre = con.prepareStatement(sql);
            	//pre.setString(1, CName);
            	pre.setBoolean(1, true);
            	ResultSet rs = pre.executeQuery();
            	while(rs.next())
        		{
        			Card card = new Card(rs.getInt("CardID"));
        			card.setFileName(rs.getString("image"));
        			card.setUserName(rs.getString("UserName"));
          			card.setTitle(rs.getString("Title"));
          			card.setKyeword(rs.getString("Keyword"));
          			card.setContent(rs.getString("Content"));
          			card.setPassOrNot(rs.getBoolean("PassOrNot"));
          			card.setCName(rs.getString("CName"));
          			card.setCount(rs.getInt("Counnt"));
          			card.setCPath(rs.getString("CPath"));
          			card.setTitleDetail(rs.getString("TitleDetail"));
          			card.setTuiJian(rs.getString("TuiJian"));
          			card.setDate(rs.getString("Date"));
          			card.setZuozhe(rs.getString("zuozhe"));
          			card.setSouce(rs.getString("Souce"));
                    vc.add(card);
        		}
        		return vc;
            }
        	catch(SQLException e){return null;}
    	}      
    }
    /**
     * 以关键字查询帖子
     * @param Keyword
     * @return
     */
    public Vector getAllCardByKeyword(String Keyword,String CPath,int pagenum ,String order_condition)
    {
    	int begin = 0;
    	begin = (pagenum-1)*8;
    	String sort;
    	Vector vc = new Vector();
    	String sql;
    	if(order_condition.equals("byTime"))
    		sort = new String("Date");
    	else
    		sort = new String("Counnt");
    	if(CPath.equals("all"))
    	{
    		if(Keyword.equals("all"))
    			sql = "select * from cardinf where PassOrNot=true order by "+sort+" desc limit " + begin + ",8";
    		else
    			sql = "select * from cardinf where  PassOrNot=true and (Title like '%" +Keyword+"%' or Keyword  like '%" + Keyword + "%' ) order by "+sort+" desc limit " + begin + ",8";
    	}
    		
    	else
    	{
    		if(Keyword.equals("all"))
    			sql = "select * from cardinf where PassOrNot=true and CPath LIKE '"  + CPath + "%' order by "+sort+" desc limit " + begin + ",8";
    		else
    			sql = "select * from cardinf where PassOrNot=true and CPath LIKE '"  + CPath + "%' and (Title like '%" +Keyword+"%' or Keyword  like '%" + Keyword + "%') order by "+sort+" desc limit " + begin + ",8";
    	}
    		
    	try
    	{
    		Statement st = con.createStatement();
        	ResultSet rs = st.executeQuery(sql);
        	while(rs.next())
    		{
    			Card card = new Card(rs.getInt("CardID"));
    			card.setFileName(rs.getString("image"));

⌨️ 快捷键说明

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