采用myecllipse工具,开发一个具有如下增、删、改、查操作功能的界面,要求编程连接mysql数据库
时间: 2023-06-16 07:02:41 浏览: 200
好的,首先需要准备的工具和环境如下:
- MyEclipse 2019 CI (或更高版本)
- MySQL 8.0
- MySQL Connector/J 8.0
接下来,我们按照如下步骤进行开发:
1. 创建一个新的 Dynamic Web Project,命名为“myweb”,并选择 Tomcat 9 作为服务器。
2. 导入 MySQL Connector/J 8.0 的 jar 包,具体步骤如下:
- 在项目中创建一个名为“lib”的文件夹。
- 将 MySQL Connector/J 8.0 的 jar 包拷贝到“lib”文件夹中。
- 右键单击项目,选择“Properties”,然后选择“Java Build Path”选项卡。
- 点击“Add JARs”按钮,选择“lib”文件夹中的 jar 包。
3. 在项目中创建一个名为“WEB-INF”的文件夹,然后在该文件夹中创建一个名为“classes”的文件夹。
4. 创建一个名为“DBUtil.java”的 Java 类,用于封装数据库连接和操作。
```java
import java.sql.*;
public class DBUtil {
// 定义连接数据库的常量
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";
// 加载驱动程序
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取数据库连接对象
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
// 关闭资源
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
5. 创建一个名为“User.java”的 Java 类,用于存储用户信息。
```java
public class User {
private int id;
private String name;
private int age;
private String email;
public User() {
}
public User(int id, String name, int age, String email) {
this.id = id;
this.name = name;
this.age = age;
this.email = email;
}
// 省略 getter 和 setter 方法
}
```
6. 创建一个名为“UserDAO.java”的 Java 类,用于操作用户数据。
```java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDAO {
// 添加用户
public boolean addUser(User user) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("INSERT INTO user(name, age, email) VALUES (?, ?, ?)");
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getEmail());
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally {
DBUtil.close(conn, stmt, null);
}
}
// 删除用户
public boolean deleteUser(int id) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("DELETE FROM user WHERE id = ?");
stmt.setInt(1, id);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally {
DBUtil.close(conn, stmt, null);
}
}
// 修改用户
public boolean updateUser(User user) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("UPDATE user SET name = ?, age = ?, email = ? WHERE id = ?");
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getEmail());
stmt.setInt(4, user.getId());
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally {
DBUtil.close(conn, stmt, null);
}
}
// 查询用户
public User getUser(int id) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("SELECT * FROM user WHERE id = ?");
stmt.setInt(1, id);
rs = stmt.executeQuery();
if (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
String email = rs.getString("email");
return new User(id, name, age, email);
} else {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {
DBUtil.close(conn, stmt, rs);
}
}
// 查询所有用户
public List<User> getAllUsers() {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
List<User> users = new ArrayList<>();
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("SELECT * FROM user");
rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String email = rs.getString("email");
users.add(new User(id, name, age, email));
}
return users;
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {
DBUtil.close(conn, stmt, rs);
}
}
}
```
7. 创建一个名为“index.jsp”的 JSP 文件,用于展示用户信息和操作界面。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="UserDAO, User" %>
<!DOCTYPE html>
<html>
<head>
<title>用户管理系统</title>
</head>
<body>
<h1>用户管理系统</h1>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<%
UserDAO dao = new UserDAO();
List<User> users = dao.getAllUsers();
for (User user : users) {
%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getName()%></td>
<td><%=user.getAge()%></td>
<td><%=user.getEmail()%></td>
<td>
<form method="post" action="index.jsp">
<input type="hidden" name="id" value="<%=user.getId()%>">
<input type="submit" name="action" value="修改">
<input type="submit" name="action" value="删除">
</form>
</td>
</tr>
<%
}
%>
</table>
<hr>
<h2>添加用户</h2>
<form method="post" action="index.jsp">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="action" value="添加"></td>
</tr>
</table>
</form>
<hr>
<h2>修改用户</h2>
<%-- 显示修改用户表单 --%>
<%
if ("修改".equals(request.getParameter("action"))) {
int id = Integer.parseInt(request.getParameter("id"));
User user = dao.getUser(id);
%>
<form method="post" action="index.jsp">
<input type="hidden" name="id" value="<%=user.getId()%>">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="name" value="<%=user.getName()%>"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age" value="<%=user.getAge()%>"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email" value="<%=user.getEmail()%>"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="action" value="更新"></td>
</tr>
</table>
</form>
<%-- 处理修改用户请求 --%>
<%
} else if ("更新".equals(request.getParameter("action"))) {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
User user = new User(id, name, age, email);
dao.updateUser(user);
response.sendRedirect("index.jsp");
}
%>
<hr>
<h2>删除用户</h2>
<%-- 处理删除用户请求 --%>
<%
if ("删除".equals(request.getParameter("action"))) {
int id = Integer.parseInt(request.getParameter("id"));
dao.deleteUser(id);
response.sendRedirect("index.jsp");
}
%>
</body>
</html>
```
8. 修改“web.xml”文件,使访问“/”路径时可以跳转到“index.jsp”文件。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
```
9. 配置 MySQL 数据库,创建名为“mydb”的数据库和“user”表。
```sql
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
```
10. 运行项目,并访问“http://localhost:8080/myweb/”路径,在界面中可以进行添加、修改、删除和查询用户的操作。
以上就是使用 MyEclipse 开发一个具有增、删、改、查操作功能的界面,并连接 MySQL 数据库的步骤。
阅读全文