学校实践项目新闻发布系统
下面是项目整体的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