jdbc连接mysql jsp代码
时间: 2023-09-22 08:05:04 浏览: 14
好的,下面是在 JSP 中使用 JDBC 连接 MySQL 的一个示例代码:
```
<%@ page import="java.sql.*" %>
<%
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "password";
String sql = "SELECT * FROM users";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
out.println(rs.getString("username"));
}
rs.close();
stmt.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
```
在这段代码中,我们首先导入了 Java SQL 包,然后定义了连接所需的 URL、用户名和密码。接下来,我们尝试加载 MySQL 驱动程序,并使用它来创建数据库连接。
在连接建立之后,我们可以使用 `createStatement` 方法来创建一个 `Statement` 对象,并使用它来执行 SQL 查询。这里我们执行的是一个 `SELECT` 语句,所以我们使用 `executeQuery` 方法来执行这个查询,并获取结果集。
最后,我们在循环中使用 `rs.next` 方法来遍历查询的结果,并使用 `rs.getString` 方法来获取用户名,然后使用 JSP 的 `out.println` 方法将其输出到网页上。
希望这对你有帮助。
相关推荐












以下是一个简单的 JavaWeb 注册登录连接 MySQL 的代码示例:
注册页面 register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
注册页面
<form action="register" method="post">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="注册"> </form> </body> </html> 注册处理 register.java: import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/register") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (username == null || password == null || username.isEmpty() || password.isEmpty()) { response.sendRedirect("register.jsp"); return; } try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8"; String user = "root"; String pass = "123456"; Connection conn = DriverManager.getConnection(url, user, pass); String sql = "INSERT INTO user (username, password) VALUES (?, ?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); ps.executeUpdate(); ps.close(); conn.close(); response.sendRedirect("login.jsp"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); response.sendRedirect("register.jsp"); } } } 登录页面 login.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> 登录页面 <form action="login" method="post"> 用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录"> </form> </body> </html> 登录处理 login.java: import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (username == null || password == null || username.isEmpty() || password.isEmpty()) { response.sendRedirect("login.jsp"); return; } try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8"; String user = "root"; String pass = "123456"; Connection conn = DriverManager.getConnection(url, user, pass); String sql = "SELECT * FROM user WHERE username=? AND password=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); ResultSet rs = ps.executeQuery(); if (rs.next()) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { response.sendRedirect("login.jsp"); } rs.close(); ps.close(); conn.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); response.sendRedirect("login.jsp"); } } } 欢迎页面 welcome.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>欢迎页面</title> </head> <body> 欢迎页面 欢迎您,<%=session.getAttribute("username")%>! 退出登录 </body> </html> 退出登录 logout.java: import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/logout") public class LogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.removeAttribute("username"); response.sendRedirect("login.jsp"); } }
密码:<input type="password" name="password">
<input type="submit" value="注册"> </form> </body> </html> 注册处理 register.java: import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/register") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (username == null || password == null || username.isEmpty() || password.isEmpty()) { response.sendRedirect("register.jsp"); return; } try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8"; String user = "root"; String pass = "123456"; Connection conn = DriverManager.getConnection(url, user, pass); String sql = "INSERT INTO user (username, password) VALUES (?, ?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); ps.executeUpdate(); ps.close(); conn.close(); response.sendRedirect("login.jsp"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); response.sendRedirect("register.jsp"); } } } 登录页面 login.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> 登录页面 <form action="login" method="post"> 用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录"> </form> </body> </html> 登录处理 login.java: import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (username == null || password == null || username.isEmpty() || password.isEmpty()) { response.sendRedirect("login.jsp"); return; } try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8"; String user = "root"; String pass = "123456"; Connection conn = DriverManager.getConnection(url, user, pass); String sql = "SELECT * FROM user WHERE username=? AND password=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); ResultSet rs = ps.executeQuery(); if (rs.next()) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { response.sendRedirect("login.jsp"); } rs.close(); ps.close(); conn.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); response.sendRedirect("login.jsp"); } } } 欢迎页面 welcome.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>欢迎页面</title> </head> <body> 欢迎页面 欢迎您,<%=session.getAttribute("username")%>! 退出登录 </body> </html> 退出登录 logout.java: import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/logout") public class LogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.removeAttribute("username"); response.sendRedirect("login.jsp"); } }




学生管理系统是一个比较典型的CRUD应用,我们可以使用JSP + JDBC + MySQL来实现。
首先,我们需要创建一个数据库,包含学生信息的表。可以创建一个名为student的表,包含以下字段:
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
age int(11) NOT NULL,
gender varchar(10) NOT NULL,
phone varchar(20) DEFAULT NULL,
address varchar(100) DEFAULT NULL,
PRIMARY KEY (id)
接下来,我们需要创建一个JDBC连接池,以便在应用中共享数据库连接。可以使用Tomcat自带的连接池,或者使用第三方的连接池库。这里我们使用Tomcat自带的连接池。
在context.xml文件中添加以下内容:
<Context>
<Resource name="jdbc/student" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="数据库用户名" password="数据库密码" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8"/>
</Context>
在web.xml文件中添加以下内容:
<resource-ref>
<description>Connection pool for MySQL</description>
<res-ref-name>jdbc/student</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
然后,我们可以编写一个JavaBean来代表学生对象。在Student.java文件中添加以下内容:
java
public class Student {
private int id;
private String name;
private int age;
private String gender;
private String phone;
private String address;
// 省略getter和setter方法
}
接下来,我们可以编写一个DAO类来访问数据库。在StudentDAO.java文件中添加以下内容:
java
public class StudentDAO {
private DataSource dataSource;
public StudentDAO() throws NamingException {
Context context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/student");
}
public List<Student> getAllStudents() throws SQLException {
List<Student> students = new ArrayList<>();
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student")) {
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
student.setGender(rs.getString("gender"));
student.setPhone(rs.getString("phone"));
student.setAddress(rs.getString("address"));
students.add(student);
}
}
return students;
}
public Student getStudentById(int id) throws SQLException {
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM student WHERE id=?")) {
stmt.setInt(1, id);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
student.setGender(rs.getString("gender"));
student.setPhone(rs.getString("phone"));
student.setAddress(rs.getString("address"));
return student;
}
}
}
return null;
}
public void addStudent(Student student) throws SQLException {
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO student (name, age, gender, phone, address) VALUES (?, ?, ?, ?, ?)")) {
stmt.setString(1, student.getName());
stmt.setInt(2, student.getAge());
stmt.setString(3, student.getGender());
stmt.setString(4, student.getPhone());
stmt.setString(5, student.getAddress());
stmt.executeUpdate();
}
}
public void updateStudent(Student student) throws SQLException {
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(
"UPDATE student SET name=?, age=?, gender=?, phone=?, address=? WHERE id=?")) {
stmt.setString(1, student.getName());
stmt.setInt(2, student.getAge());
stmt.setString(3, student.getGender());
stmt.setString(4, student.getPhone());
stmt.setString(5, student.getAddress());
stmt.setInt(6, student.getId());
stmt.executeUpdate();
}
}
public void deleteStudent(int id) throws SQLException {
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement("DELETE FROM student WHERE id=?")) {
stmt.setInt(1, id);
stmt.executeUpdate();
}
}
}
最后,我们可以编写一个JSP页面来展示学生信息。在index.jsp文件中添加以下内容:
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="javax.naming.NamingException" %>
<%@ page import="com.example.StudentDAO" %>
<%@ page import="com.example.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
学生列表
ID
姓名
年龄
性别
电话
地址
<%
StudentDAO dao = null;
try {
dao = new StudentDAO();
List<Student> students = dao.getAllStudents();
for (Student student : students) {
%>
<%= student.getId() %>
<%= student.getName() %>
<%= student.getAge() %>
<%= student.getGender() %>
<%= student.getPhone() %>
<%= student.getAddress() %>
编辑
删除
<%
}
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
} finally {
if (dao != null) {
dao.close();
}
}
%>
添加学生
</body>
</html>
在edit.jsp文件中,我们可以使用同样的方式显示学生信息,并提供一个表单来编辑学生信息。在提交表单时,我们可以使用StudentDAO类来更新学生信息。
在add.jsp文件中,我们可以提供一个表单来添加新的学生信息。在提交表单时,我们可以使用StudentDAO类来插入新的学生信息。
在delete.jsp文件中,我们可以使用StudentDAO类来删除学生信息。
至此,我们已经完成了一个简单的学生管理系统的实现。注意,在实际应用中,我们需要进行一些安全性和可靠性的考虑,例如输入验证、异常处理、事务管理等。