jsp连接MySQL实现插入insert操作功能示例
在午后的时光里,我成功实现了这一功能,使得我们的web应用程序能够通过JSP与MySQL数据库进行交互。我们在index.jsp页面上设计相应的表单,让用户可以输入需要存储的数据。这些数据包括但不限于用户名、密码、等。当用户填写完表单并点击提交按钮时,这些数据将被发送到我们的insert.jsp页面。
在insert.jsp页面中,我们将使用JSP的内置功能以及JDBC(Java Database Connectivity)技术来连接MySQL数据库。我们需要导入相应的Java库,以便能够使用MySQL的Java API。然后,我们需要提供数据库连接的详细信息,如主机名、端口号、数据库名称、用户名和密码。
在这个过程中,我们还需要处理可能出现的异常情况,如数据库连接失败、SQL语句执行错误等。这些异常情况的处理对于保证程序的稳定性和安全性至关重要。
我们有一个 `index.jsp` 页面,它包含一个简单的表单,用户可以输入 ID、姓名、性别和年龄。表单的 action 指向 `mysql_insert.jsp`,这意味着当用户提交表单时,数据将被发送到 `mysql_insert.jsp` 页面进行处理。
以下是 `mysql_insert.jsp` 页面的代码详解:
```jsp
<%@ page language="java" import="java.util.,java.sql." pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=utf-8"%>
<%
request.setCharacterEncoding("UTF-8"); // 设置请求字符编码为 UTF-8
response.setCharacterEncoding("UTF-8"); // 设置响应字符编码为 UTF-8
response.setContentType("text/html; charset=utf-8"); // 设置响应内容类型为 HTML,并指定字符编码为 UTF-8
%>
<%
String id = request.getParameter("id"); // 从表单获取 ID
String name = request.getParameter("name"); // 从表单获取姓名
String sex = request.getParameter("sex"); // 从表单获取性别
String age = request.getParameter("age"); // 从表单获取年龄
java.util.Date date = new java.util.Date();
String datetime = new Timestamp(date.getTime()).toString();
try {
// 数据库连接参数
String driverName = "com.mysql.jdbc.Driver"; // 驱动名称(注意:这是旧版的驱动名称,新版的可能是其他名称)
String DBUser = "root"; // MySQL 用户名
String DBPasswd = "123456"; // MySQL 密码
String DBName = "html_db"; // 数据库名
String connUrl = "jdbc:mysql://localhost/" + DBName; // 连接 URL,不包含用户和密码信息,因为密码应保密处理。这里仅作示例。实际开发中应避免这种方式。
Class.forName(driverName).newInstance(); // 加载数据库驱动类并实例化驱动对象(注意:这种方式在新版 Java 中可能不再适用)
Connection conn = DriverManager.getConnection(connUrl, DBUser, DBPasswd); // 建立数据库连接
Statement stmt = conn.createStatement(); // 创建 SQL 执行语句对象
当我们从MySQL数据库中提取数据并展示时,同样需要指定相应的编码方式。例如,在狼蚁网站的SEO优化中的mysql_query.jsp文件,就使用了`<%%@ page contentType="text/html;charset=gb2312"%>`来明确指定使用GB2312编码。这是因为我们的数据库可能存储了以这种编码格式的数据。
在Tomcat服务器中,默认会对URL进行iso-8859-1编码。在处理数据库连接和查询时,我们需要进行相应的编码转换。以下是一个典型的JSP页面示例,它从数据库中提取数据并在网页上显示:
```jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql." %>
<%
Connection con = null;
String url = "jdbc:mysql://localhost/html_db?user=root&password=123456&useUnicode=true&characterEncoding=8859_1"; //html_db为数据库名
Class.forName("com.mysql.jdbc.Driver").newInstance(); //加载驱动
Connection conn = DriverManager.getConnection(url); //建立连接
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "select from person_tb"; //查询语句
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
%>
ID<%=rs.getString("id") %>
姓名<%=rs.getString("name") %>
性别<%=rs.getString("sex") %>
年龄<%=rs.getString("age") %>
<%
}
%>
<%out.print("数据库操作成功,恭喜你!");%>
<% rs.close(); stmt.close(); conn.close(); %>
```
这段代码中,我们首先通过JDBC连接到MySQL数据库,然后执行查询语句,将结果集展示在网页上。在这个过程中,我们使用了GB2312编码来处理页面和数据库之间的数据交互。也进行了适当的异常处理和资源关闭操作,以确保程序的稳定性和安全性。通过这种方式,我们可以确保数据的正确显示和处理,为用户提供良好的浏览体验。