请问你的代码连接数据库了吗
时间: 2024-03-14 07:46:16 浏览: 10
不好意思,我之前给出的代码没有连接数据库。如果需要将留言保存到数据库中,可以按照以下步骤进行:
1. 创建数据库表,用于存储留言信息。例如,可以创建一个名为 messages 的表,包含以下字段:id(主键)、content(留言内容)、created_at(创建时间)。
2. 使用 JDBC 连接到数据库,并编写 SQL 语句将用户提交的留言内容插入到数据库表中。
3. 编写查询语句,从数据库中读取所有的留言,并在 JSP 页面中显示出来。
下面是一个简单的实现示例:
1. 创建数据库表
```sql
CREATE TABLE messages (
id INT PRIMARY KEY AUTO_INCREMENT,
content VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
2. 连接到数据库,并插入留言
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
String message = request.getParameter("message");
if (message != null && !message.trim().isEmpty()) {
try {
// 连接到数据库
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
// 插入留言
String sql = "INSERT INTO messages (content) VALUES (?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, message);
statement.executeUpdate();
// 关闭连接
statement.close();
conn.close();
out.println("留言添加成功!");
} catch (Exception e) {
e.printStackTrace();
out.println("留言添加失败!");
}
} else {
out.println("留言内容不能为空!");
}
%>
```
3. 从数据库中读取留言并显示
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
try {
// 连接到数据库
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
// 查询留言
String sql = "SELECT * FROM messages ORDER BY created_at DESC";
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
// 显示留言
while (resultSet.next()) {
out.println(resultSet.getString("content") + "<br>");
}
// 关闭连接
resultSet.close();
statement.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
out.println("读取留言失败!");
}
%>
```
在这个示例中,我们使用了 MySQL 数据库,并通过 JDBC 连接到数据库。在插入留言时,我们使用了 PreparedStatement 预编译 SQL 语句,以避免 SQL 注入攻击。在查询留言时,我们使用了 Statement 对象,并通过 ResultSet 对象读取查询结果。最后,我们在 JSP 页面中循环输出留言内容。