第三周01
今天学习了如何在 Java Web 应用中连接数据库并进行操作,主要使用 JDBC(Java Database Connectivity)技术。
首先,需要下载并导入数据库驱动包。以 MySQL 数据库为例,下载mysql-connector-java的 jar 包,并将其添加到项目的WEB-INF/lib目录下。
然后编写代码来连接数据库并执行查询操作。以下是一个简单的示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DatabaseExample {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
statement = connection.createStatement();
String sql = "SELECT * FROM users";
resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
在 Java Web 项目中,通常将数据库连接相关的代码封装在一个工具类中,方便复用。例如:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USER = "username";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
然后在 Servlet 或其他 Java 类中使用这个工具类来获取数据库连接。
在获取到数据库连接并执行查询后,我们还可以进行插入、更新和删除操作。以插入操作为例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertExample {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = DBUtil.getConnection();
String sql = "INSERT INTO users (name, email) VALUES (?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "New User");
preparedStatement.setString(2, "newuser@example.com");
int rowsInserted = preparedStatement.executeUpdate();
if (rowsInserted > 0) {
System.out.println("A new user was inserted successfully!");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (preparedStatement != null) preparedStatement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
这里使用了PreparedStatement,它相比于Statement能有效防止 SQL 注入攻击,并且在处理带参数的 SQL 语句时更加便捷和安全。通过对 JDBC 的学习,我掌握了在 Java Web 应用中与数据库进行交互的基本技能,这是构建数据驱动型 Web 应用的关键。
浙公网安备 33010602011771号