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: