Java面试题:数据库操作

介绍

数据库操作是Java开发中必不可少的一部分。在面试中,经常会涉及到与数据库相关的问题。本文将介绍一些常见的数据库操作问题,并给出相应的代码示例。

数据库连接

在Java中,我们使用JDBC(Java Database Connectivity)来连接数据库。JDBC是一种用于执行SQL语句的Java API,可以与各种关系型数据库进行交互。

下面是一个简单的数据库连接示例,使用JDBC连接MySQL数据库。

import java.sql.*;

public class DatabaseConnectionExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("Database connection established.");
            // 这里可以执行具体的数据库操作
            connection.close();
        } catch (SQLException e) {
            System.out.println("Database connection failed.");
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先指定了数据库的URL、用户名和密码。然后使用DriverManager.getConnection()方法来建立数据库连接。如果连接成功,会打印出"Database connection established.",否则会打印出"Database connection failed."。

数据库查询

数据库查询是数据库操作中最常见的一种操作。我们可以使用SQL语句来查询数据库中的数据,并将结果返回给Java程序。

下面是一个简单的查询示例,查询学生表中的所有学生信息。

import java.sql.*;

public class DatabaseQueryExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("Database connection established.");

            Statement statement = connection.createStatement();
            String query = "SELECT * FROM student";
            ResultSet resultSet = statement.executeQuery(query);

            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");
                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
            }

            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            System.out.println("Database connection failed.");
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先建立了数据库连接。然后创建了一个Statement对象,用于执行SQL语句。接下来,我们使用executeQuery()方法执行查询语句,并将结果保存在ResultSet对象中。最后,通过while循环遍历结果集,将每条记录的ID、姓名和年龄打印出来。

数据库插入

数据库插入是向数据库中添加新数据的一种操作。我们可以使用SQL语句来插入数据,并将结果返回给Java程序。

下面是一个简单的插入示例,向学生表中插入一条新的学生记录。

import java.sql.*;

public class DatabaseInsertExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("Database connection established.");

            Statement statement = connection.createStatement();
            String insert = "INSERT INTO student (name, age) VALUES ('John', 20)";
            int rowsAffected = statement.executeUpdate(insert);

            System.out.println("Rows affected: " + rowsAffected);

            statement.close();
            connection.close();
        } catch (SQLException e) {
            System.out.println("Database connection failed.");
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先建立了数据库连接。然后创建了一个Statement对象,用于执行SQL语句。接下来,我们使用executeUpdate()方法执行插入语句,并将受影响的行数保存在rowsAffected变量中。最后,打印出受影响的行数。

数据库更新

数据库更新是修改数据库中数据的一种操作。我们可以使用SQL语句来更新数据,并将结果返回给Java程序。

下面是一个简单的更新示例,将学生表中ID为1的学生年龄更新为21。

import java.sql.*;

public class DatabaseUpdateExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost: