设计一个基于JavaWeb语言的新闻发布管理系统代码
时间: 2024-01-15 12:02:59 浏览: 33
好的,下面是一个简单的基于JavaWeb语言的新闻发布管理系统的代码示例,包括数据库设计和部分后端代码:
1. 数据库设计
CREATE TABLE `t_news` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '新闻ID',
`title` varchar(255) NOT NULL COMMENT '新闻标题',
`content` text NOT NULL COMMENT '新闻内容',
`author` varchar(50) NOT NULL COMMENT '新闻作者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='新闻表';
2. 后端代码
(1) News.java
package com.example.news.entity;
import java.util.Date;
public class News {
private int id;
private String title;
private String content;
private String author;
private Date createTime;
private Date updateTime;
// 省略getter和setter方法
}
(2) NewsDao.java
package com.example.news.dao;
import com.example.news.entity.News;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class NewsDao {
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/news_db?useSSL=false&serverTimezone=UTC";
private static final String JDBC_USER = "root";
private static final String JDBC_PASSWORD = "123456";
public List<News> listNews() throws SQLException {
List<News> newsList = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) {
String sql = "SELECT * FROM t_news ORDER BY create_time DESC";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String title = rs.getString("title");
String content = rs.getString("content");
String author = rs.getString("author");
Date createTime = rs.getTimestamp("create_time");
Date updateTime = rs.getTimestamp("update_time");
News news = new News();
news.setId(id);
news.setTitle(title);
news.setContent(content);
news.setAuthor(author);
news.setCreateTime(createTime);
news.setUpdateTime(updateTime);
newsList.add(news);
}
}
}
}
return newsList;
}
public void addNews(News news) throws SQLException {
try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) {
String sql = "INSERT INTO t_news(title, content, author) VALUES (?, ?, ?)";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, news.getTitle());
stmt.setString(2, news.getContent());
stmt.setString(3, news.getAuthor());
stmt.executeUpdate();
}
}
}
}
(3) NewsServlet.java
package com.example.news.servlet;
import com.example.news.dao.NewsDao;
import com.example.news.entity.News;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
public class NewsServlet extends HttpServlet {
private NewsDao newsDao;
public void init() throws ServletException {
newsDao = new NewsDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
List<News> newsList = newsDao.listNews();
request.setAttribute("newsList", newsList);
request.getRequestDispatcher("/news.jsp").forward(request, response);
} catch (SQLException e) {
throw new ServletException("Failed to list news", e);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String title = request.getParameter("title");
String content = request.getParameter("content");
String author = request.getParameter("author");
News news = new News();
news.setTitle(title);
news.setContent(content);
news.setAuthor(author);
try {
newsDao.addNews(news);
response.sendRedirect(request.getContextPath() + "/news");
} catch (SQLException e) {
throw new ServletException("Failed to add news", e);
}
}
}
以上是一个简单的基于JavaWeb语言的新闻发布管理系统的代码示例,仅供参考。其中NewsDao.java和NewsServlet.java是关键部分,News.java是新闻实体类。需要注意的是,这里的代码只是示例,实际开发中需要根据实际需求进行修改和完善。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)