新闻发布系统

这是一个学校实践项目,采用MVC架构,使用Java、Maven、Tomcat和IntelliJ IDEA开发。涉及到的角色包括RoleDao、TextDao、UserDao,以及过滤器、Servlet、实体类和服务实现。项目中利用Ajax进行前端异步更新,同时注意了Servlet API版本需在3.0以上。项目源代码可在Gitee上获取,前端部分参考了B站狂神的代码。
摘要由CSDN通过智能技术生成

学校实践项目新闻发布系统

下面是项目整体的java类、包、接口  主要结构

用MVC三层结构  一些简单的ajax

Dao Service Model Servlet

 

RoleDao:用户角色的Dao层

package com.zt.dao.role;

import com.zt.pojo.Role;

import java.sql.Connection;
import java.util.List;

public interface RoleDao {
    //获取角色表
    public List<Role> getRoleList(Connection connection) throws Exception;
}
RoleDaoImpl:用户角色的实现类
package com.zt.dao.role;

import com.zt.dao.BaseDao;
import com.zt.pojo.Role;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RoleDaoImpl implements RoleDao{
    public List<Role> getRoleList(Connection connection) throws Exception {
        PreparedStatement pstm=null;
        ResultSet rs=null;
        List<Role> roleList = new ArrayList<Role>();
        if(connection!=null){
            String sql="SELECT * FROM `journalism_role`";
            Object[] params={};
            rs = BaseDao.execute(connection, sql, params, rs, pstm);
            while(rs.next()){
                Role role = new Role();
                role.setId(rs.getInt("id"));
                role.setRoleCode(rs.getString("roleCode"));
                role.setRoleName(rs.getString("roleName"));
                roleList.add(role);
            }
        }
        BaseDao.closeResource(null,pstm,rs);
        return roleList;
    }
}

 TextDao:新闻的Dao层

package com.zt.dao.text;
import com.zt.pojo.Text;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public interface TextDao {

    //增加新闻
    public int addText(Connection connection, Text text) throws SQLException;

    //删除新闻
    public int deleteTextById(Connection connection, Integer delId) throws SQLException;

    //通过userId查看当前用户信息
    public Text getTextById(Connection connection, String id)throws Exception;

    //查询全部的新闻
    public List<Text> allText(Connection connection) throws SQLException;

    //根据用户输入的名字或者角色id来查询计算用户数量
    public int getTextCount(Connection connection, String textName)throws Exception;

    //通过用户输入的条件查询用户列表
    public List<Text> getTextList(Connection connection, String textName, int currentPageNo, int pageSize) throws  Exception;

    //修改新闻
    public int modify(Connection connection, Text text)throws Exception;
}

 TextDaoImpl:新闻的实现

package com.zt.dao.text;

import com.mysql.cj.util.StringUtils;
import com.zt.dao.BaseDao;
import com.zt.pojo.Text;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TextDaoImpl implements TextDao{
    public int addText(Connection connection, Text text) throws SQLException {
        PreparedStatement pstm =null;
        int updateNum = 0;
        if(connection!=null){
            String sql = "insert into journalism_text (text_title,text_contents,text_accessory,text_promulgator,text_id)"+
                    "values(?,?,?,?,?)";
            Object[] params={text.getText_title(),text.getText_contents(),text.getText_accessory(),text.getText_promulgator(),text.getText_id()};
            updateNum = BaseDao.execute(connection,sql,params,pstm);
            BaseDao.closeResource(null,pstm,null);
        }
        return updateNum;
    }

    public int deleteTextById(Connection connection, Integer delId) throws SQLException {
        PreparedStatement pstm=null;
        int deleteNum=0;
        if(connection!=null){
            String sql="DELETE FROM `journalism_text` WHERE id=?";
            Object[] params={delId};
            deleteNum=BaseDao.execute(connection,sql,params,pstm);
            BaseDao.closeResource(null,pstm,null);
        }
        return deleteNum;
    }

    public Text getTextById(Connection connection, String id) throws Exception {
        PreparedStatement pstm=null;
        ResultSet rs=null;
        Text text =new Text();
        if(connection!=null){

            String sql="select * from `journalism_text` WHERE id=?";
            Object[] params={id};
            rs = BaseDao.execute(connection, sql, params, rs, pstm);
            while(rs.next()){
                text.setId(rs.getInt("id"));
                text.setText_title(rs.getString("text_title"));
                text.setText_contents(rs.getString("text_contents"));
                text.setText_accessory(rs.getString("text_accessory"));
                text.setText_promulgator(rs.getString("text_promulgator"));
                text.setText_time(rs.getString("text_time"));
                text.setText_id(rs.getInt("text_id"));
            }
            BaseDao.closeResource(null,pstm,rs);
        }
        return text;
    }

    public List<Text> allText(Connection connection) throws SQLException {
        PreparedStatement pstm=null;
        ResultSet rs=null;
        Text text =new Text();
        List<Text> list = new ArrayList<Text>();
        if(connection!=null){

            String sql="select * from `journalism_text` WHERE id=?";
            rs = BaseDao.execute(connection, sql,null, rs, pstm);
            while(rs.next()){
                text.setId(rs.getInt("id"));
                text.setText_title(rs.getString("text_title"));
                text.setText_contents(rs.getString("text_contents"));
                text.setText_accessory(rs.getString("text_accessory"));
                text.setText_promulgator(rs.getString("text_promulgator"));
                text.setText_time(rs.getString("text_time"));
                text.setText_id(rs.getInt("text_id"));
                list.add(text);
            }
            BaseDao.closeResource(null,pstm,rs);
        }
        return list;
    }

    public int getTextCount(Connection connection, String textName) throws Exception {
        int count=0;
        PreparedStatement pstm = null;
        ResultSet rs=null;
        if (connection!=null) {
            StringBuffer sql=new StringBuffer();
            sql.append("SELECT COUNT(*) AS count FROM `journalism_text` where id=id");
            ArrayList<Object> list = new ArrayList<Object>();//存放可能会放进sql里的参数,就是用来替代?的params
            if(!StringUtils.isNullOrEmpty(textName)){
                sql.append(" and text_title like ?");
                list.add("%"+textName+"%");//模糊查询,index:0
            }
            Object[] params = list.toArray();//转换成数组
            System.out.println("当前的sql语句为------------>"+sql);
            rs = BaseDao.execute(connection, sql.toString(), params, rs, pstm);
            if(rs.next()){
                count=rs.getInt("count");

            }
            BaseDao.closeResource(null,pstm,rs);
        }
        return count;
    }

    public List<Text> getTextList(Connection connection, String textName, int currentPageNo, int pageSize) throws Exception {
        List<Text> textList = new ArrayList<Text>();
        PreparedStatement pstm=null;
        ResultSet rs=null;
        if(connection!=null){
            StringBuffer sql = new StringBuffer();
            sql.append("select * from journalism_text where id=id");
            List<Object> list = new ArrayList<Object>();
            if(!StringUtils.isNullOrEmpty(textName)){
                sql.append(" and text_title like ?");
                list.add("%"+textName+"%");
            }

            sql.append(" order by text_title DESC limit ?,?");
            currentPageNo = (currentPageNo-1)*pageSize;
            list.add(currentPageNo);
            list.add(pageSize);

            Object[] params = list.toArray();
            System.out.println("sql ----> 222" + sql.toString());
            rs = BaseDao.execute(connection,sql.toString(),params,rs,pstm);
            System.out.println("rsssss"+rs);
            while(rs.next()){
                Text text = new Text();
                text.setId(rs.getInt("id"));
                text.setText_title(rs.getString("text_title"));
                text.setText_accessory(rs.getString("text_accessory"));
                text.setText_contents(rs.getString("text_contents"));
                text.setText_promulgator(rs.getString("text_promulgator"));
                text.setText_time(rs.getString("text_time"));

                textList.add(text);
            }
            BaseDao.closeResource(null, pstm, rs);
        }
        System.out.println("textList()()()()()()"+textList);
        return textList;
    }

    public int modify(Connection connection, Text text) throws Exception {
        int updateNum = 0;
        PreparedStatement pstm = null;
        if(null != connection){
            String sql = "update journalism_text set text_title=?,text_contents=?,text_accessory=?,text_promulgator=?where id = ? ";
            Object[] params = {text.getText_title(),text.getText_contents(),text.getText_accessory(),text.getText_promulgator(),text.getId()};
            updateNum = BaseDao.execute(connection, sql,params,pstm);
            BaseDao.closeResource(null, pstm, null);
        }
        return updateNum;
    }
}

 UserDao:用户的Dao

package com.zt.dao.user;

import com.zt.pojo.User;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public interface UserDao {
    //得到登录的用户
    //,String userPassword
    public User getLoginUser(Connection connection, String userCode) throws SQLException;

    //修改当前用户密码
    //增删改都会影响数据库的变化,所以是返回int类型,说明有几行受到了影响
    public int updatePwd(Connection connection,int id,String userPassword)throws SQLException;

    //根据用户输入的名字或者角色id来查询计算用户数量
    public int getUserCount(Connection connection, String userName, int userRole)throws Exception;

    //通过用户输入的条件查询用户列表
    public List<User> getUserList(Connection connection, String userName, int userRole,int currentPageNo,int pageSize) throws  Exception;

    //增加用户信息
    public  int add(Connection connection,User user) throws Exception;

    //通过用户id删除用户信息
    public int deleteUserById(Connection connection, Integer delId)throws Exception;

    //通过userId查看当前用户信息
    public User getUserById(Connection connection, String id)throws Exception;
    //修改用户信息
    public int modify(Connection connection, User user)throws Exception;

}

UserDaoImpl :用户Dao的实现

package com.zt.dao.user;

import com.mysql.cj.util.StringUtils;
import com.zt.dao.BaseDao;
import com.zt.pojo.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl implements UserDao{
    //得到要登录的用户
    public User getLoginUser(Connection connection, String userCode) throws SQLException {
        PreparedStatement pstm = null;
        ResultSet rs = null;
        User user = null;
        System.out.println("getLoginUser+connection"+connection);
        if (connection!=null){
            String sql = "select * from journalism_user where userCode=?";
            System.out.println("sql------------------->:"+sql);
            Object[] params = {userCode};
            //System.out.println(userPassword);
            rs = BaseDao.execute(connection,sql,params,rs,pstm);
            if (rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUserCode(rs.getString("userCode"));
                user.setUserName(rs.getString("userName"));
                user.setUserPassword(rs.getString("userPassword"));
                user.setUserRole(rs.getInt("userRole"));
            }
            BaseDao.closeResource(null,pstm,rs);
        }
        return user;
    }

    //修改当前用户密码
    //增删改都会影响数据库的变化,所以是返回int类型,说明有几行受到了影响
    public int updatePwd(Connection connection, int id, String userPassword) throws SQLException {
        int updateRows=0;
        PreparedStatement pstm = null;
        if(connection!=null){
            String Sql="UPDATE `journalism_user` SET `userPassword`=? WHERE `id`=? ";
            Object []params={userPassword,id};
            updateRows=BaseDao.execute(connection,Sql,params,pstm);
        }
        BaseDao.closeResource(null,pstm,null);
        return updateRows;
    }
    //根据用户输入的名字或者角色id来查询计算用户数量
    public int getUserCount(Connection connection, String userName, int userRole) throws Exception {
        int count=0;
        PreparedStatement pstm = null;
        ResultSet rs=null;
        if (connection!=null) {
            StringBuffer sql=new StringBuffer();
            sql.append("SELECT COUNT(*) AS count FROM `journalism_user` u,`journalism_role` r WHERE u.`userRole`=r.`id`");
            ArrayList<Object> list = new ArrayList<Object>();//存放可能会放进sql里的参数,就是用来替代?的params
            if(!StringUtils.isNullOrEmpty(userName)){
                sql.append(" and u.username like ?");
                list.add("%"+userName+"%");//模糊查询,index:0
            }
            if(userRole>0){
                sql.append(" and u.userRole = ?");
                list.add(userRole);//index:1
            }
            Object[] params = list.toArray();//转换成数组
            System.out.println("当前的sql语句为------------>"+sql);
            rs = BaseDao.execute(connection, sql.toString(), params, rs, pstm);
            if(rs.next()){
                count=rs.getInt("count");

            }
            BaseDao.closeResource(null,pstm,rs);

        }
        System.out.println("getUserCount__=====>>>>>>>>>>"+count);
        return count;
    }
    //通过用户输入的条件查询用户列表
    public List<User> getUserList(Connection connection, String userName, int userRole,int currentPageNo, int pageSize) throws Exception {
        List<User> userList = new ArrayList<User>();
        PreparedStatement pstm=null;
        ResultSet rs=null;
        if(connection!=null){
            StringBuffer sql = new StringBuffer();
            sql.append("select u.*,r.roleName as userRoleName from journalism_user u,journalism_role r where u.userRole = r.id");
            List<Object> list = new ArrayList<Object>();
            if(!StringUtils.isNullOrEmpty(userName)){
                sql.append(" and u.userName like ?");
                list.add("%"+userName+"%");
            }
            if(userRole > 0){
                sql.append(" and u.userRole = ?");
                list.add(userRole);
            }
            sql.append(" order by userName DESC limit ?,?");
            currentPageNo = (currentPageNo-1)*pageSize;
            list.add(currentPageNo);
            list.add(pageSize);

            Object[] params = list.toArray();
            System.out.println("sql ----> 222" + sql.toString());
            rs = BaseDao.execute(connection,sql.toString(),params,rs,pstm);
            System.out.print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值