javaweb使用idea连接MySQL数据库和servlet进行增删改查操作
时间: 2023-05-28 09:02:37 浏览: 149
首先,需要下载并安装MySQL数据库,然后创建一个数据库,并创建一个表格存储数据。
接下来,打开IntelliJ IDEA,创建一个Web应用程序工程。
在工程的src目录下,创建一个Java类,用于连接和操作数据库。
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBHelper {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8";
private static String user = "root";
private static String password = "123456";
public static Connection getConn() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void closeConn(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static int executeUpdate(String sql) {
Connection conn = null;
Statement stmt = null;
int result = 0;
try {
conn = getConn();
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConn(conn);
}
return result;
}
public static ResultSet executeQuery(String sql) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
```
这个类中包含了获取数据库连接、关闭数据库连接、执行增删改查语句的方法。
接下来,创建一个Servlet的Java类,用于处理Http请求,并调用DBHelper中的方法操作数据库。
```
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class StudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public StudentServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
if ("add".equals(action)) {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String sql = "insert into student(name,age,gender) values('" + name + "'," + age + ",'" + gender + "')";
int result = DBHelper.executeUpdate(sql);
if (result > 0) {
out.print("<script>alert('添加成功');window.location.href='index.jsp';</script>");
} else {
out.print("<script>alert('添加失败');history.go(-1);</script>");
}
} else if ("delete".equals(action)) {
int id = Integer.parseInt(request.getParameter("id"));
String sql = "delete from student where id=" + id;
int result = DBHelper.executeUpdate(sql);
if (result > 0) {
out.print("<script>alert('删除成功');window.location.href='index.jsp';</script>");
} else {
out.print("<script>alert('删除失败');history.go(-1);</script>");
}
} else if ("update".equals(action)) {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String sql = "update student set name='" + name + "',age=" + age + ",gender='" + gender + "' where id=" + id;
int result = DBHelper.executeUpdate(sql);
if (result > 0) {
out.print("<script>alert('修改成功');window.location.href='index.jsp';</script>");
} else {
out.print("<script>alert('修改失败');history.go(-1);</script>");
}
} else if ("query".equals(action)) {
String name = request.getParameter("name");
String sql = "select id,name,age,gender from student where name like '%" + name + "%'";
ResultSet rs = DBHelper.executeQuery(sql);
StringBuilder sb = new StringBuilder("<table border='1'>");
sb.append("<tr><th>编号</th><th>姓名</th><th>年龄</th><th>性别</th><th>操作</th></tr>");
try {
while (rs.next()) {
sb.append("<tr>");
sb.append("<td>" + rs.getInt("id") + "</td>");
sb.append("<td>" + rs.getString("name") + "</td>");
sb.append("<td>" + rs.getInt("age") + "</td>");
sb.append("<td>" + rs.getString("gender") + "</td>");
sb.append("<td><a href='update.jsp?id=" + rs.getInt("id") + "'>修改</a> <a href='StudentServlet?action=delete&id=" + rs.getInt("id") + "'>删除</a></td>");
sb.append("</tr>");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.closeConn(DBHelper.getConn());
}
sb.append("</table>");
out.print(sb.toString());
} else {
response.sendRedirect("index.jsp");
}
out.flush();
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
这个Servlet中包含了添加学生记录、删除学生记录、修改学生记录、查询学生记录的方法。
最后,在Web应用程序中创建JSP页面,用于添加、修改、查询和展示学生信息的操作。
以查询学生信息页面query.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>
<h2>学生信息查询</h2>
<form action="StudentServlet" method="get">
姓名:<input type="text" name="name">
<input type="hidden" name="action" value="query">
<input type="submit" value="查询">
</form>
<hr>
<h3>查询结果</h3>
<%= request.getAttribute("resultStr") %>
</body>
</html>
```
在这个页面中,用户可以输入学生姓名,然后点击查询按钮,调用Servlet中的查询学生记录的方法,返回查询结果并显示在页面上。
这样就完成了使用Idea连接MySQL数据库和Servlet进行增删改查操作的示例。
相关推荐






好的,这里提供一个简单的图书管理系统的示例,基于JavaWeb和IDEA开发。
首先,需要准备以下环境:
- JDK 1.8+
- Tomcat 7+
- MySQL 5.6+
- IDEA
接下来,按照以下步骤进行开发:
1. 创建Maven项目
在IDEA中创建Maven项目,并添加以下依赖:
xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
2. 创建数据库
在MySQL中创建一个名为library的数据库,并创建以下表格:
sql
CREATE TABLE book (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
author varchar(50) NOT NULL,
price double NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 编写JavaBean类
创建一个名为Book的JavaBean类,用于封装图书信息。
java
public class Book {
private int id;
private String name;
private String author;
private double price;
// getter and setter methods
}
4. 编写DAO类
创建一个名为BookDAO的DAO类,用于访问数据库,并提供以下方法:
java
public class BookDAO {
// 获取所有图书信息
public List<Book> getAllBooks() {
// TODO: 查询所有图书信息并返回
}
// 根据ID获取图书信息
public Book getBookById(int id) {
// TODO: 根据ID查询图书信息并返回
}
// 添加图书信息
public void addBook(Book book) {
// TODO: 添加图书信息到数据库
}
// 更新图书信息
public void updateBook(Book book) {
// TODO: 更新图书信息到数据库
}
// 删除图书信息
public void deleteBook(int id) {
// TODO: 根据ID删除图书信息
}
}
5. 编写Servlet类
创建一个名为BookServlet的Servlet类,用于处理HTTP请求,并调用DAO类中的方法。
java
@WebServlet("/book")
public class BookServlet extends HttpServlet {
private BookDAO bookDAO = new BookDAO();
// 处理GET请求
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("add".equals(action)) {
// 转发到添加图书页面
request.getRequestDispatcher("/jsp/add.jsp").forward(request, response);
} else if ("edit".equals(action)) {
// 根据ID获取图书信息,并转发到编辑图书页面
int id = Integer.parseInt(request.getParameter("id"));
Book book = bookDAO.getBookById(id);
request.setAttribute("book", book);
request.getRequestDispatcher("/jsp/edit.jsp").forward(request, response);
} else if ("delete".equals(action)) {
// 根据ID删除图书信息,并重定向到图书列表页面
int id = Integer.parseInt(request.getParameter("id"));
bookDAO.deleteBook(id);
response.sendRedirect(request.getContextPath() + "/book");
} else {
// 获取所有图书信息,并转发到图书列表页面
List<Book> books = bookDAO.getAllBooks();
request.setAttribute("books", books);
request.getRequestDispatcher("/jsp/list.jsp").forward(request, response);
}
}
// 处理POST请求
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("add".equals(action)) {
// 获取表单提交的图书信息,并添加到数据库
String name = request.getParameter("name");
String author = request.getParameter("author");
double price = Double.parseDouble(request.getParameter("price"));
Book book = new Book();
book.setName(name);
book.setAuthor(author);
book.setPrice(price);
bookDAO.addBook(book);
response.sendRedirect(request.getContextPath() + "/book");
} else if ("edit".equals(action)) {
// 获取表单提交的图书信息,并更新到数据库
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String author = request.getParameter("author");
double price = Double.parseDouble(request.getParameter("price"));
Book book = new Book();
book.setId(id);
book.setName(name);
book.setAuthor(author);
book.setPrice(price);
bookDAO.updateBook(book);
response.sendRedirect(request.getContextPath() + "/book");
}
}
}
6. 编写JSP页面
创建以下JSP页面,用于展示图书信息和处理表单提交:
- list.jsp:展示所有图书信息
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图书列表</title>
</head>
<body>
图书列表
添加图书
ID
书名
作者
价格
操作
<c:forEach items="${books}" var="book">
${book.id}
${book.name}
${book.author}
${book.price}
编辑
删除
</c:forEach>
</body>
</html>
- add.jsp:添加图书表单页面
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="${pageContext.request.contextPath}/book" method="post">
<input type="hidden" name="action" value="add">
书名:<input type="text" name="name">
作者:<input type="text" name="author">
价格:<input type="text" name="price">
<input type="submit" value="添加">
</form>
</body>
</html>
- edit.jsp:编辑图书表单页面
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>编辑图书</title>
</head>
<body>
编辑图书
<form action="${pageContext.request.contextPath}/book" method="post">
<input type="hidden" name="action" value="edit">
<input type="hidden" name="id" value="${book.id}">
书名:<input type="text" name="name" value="${book.name}">
作者:<input type="text" name="author" value="${book.author}">
价格:<input type="text" name="price" value="${book.price}">
<input type="submit" value="保存">
</form>
</body>
</html>
7. 部署项目
将项目打包成WAR文件,并部署到Tomcat服务器上。
完成后,启动Tomcat服务器,访问http://localhost:8080/图书管理系统名称/book即可查看图书列表。可以点击“添加图书”按钮添加图书信息,也可以点击“编辑”、“删除”按钮编辑或删除图书信息。










