在Java中使用MySQL是一个常见的面试话题。
-
什么是JDBC?
答案: Java数据库连接(JDBC)是Java编程语言中用于与数据库建立连接、执行SQL语句和处理结果的API。它提供了一种标准的接口,使得Java应用程序能够与各种关系型数据库进行通信。
-
JDBC的基本步骤是什么?
答案:
- 加载数据库驱动程序。
- 建立数据库连接。
- 创建Statement对象。
- 执行SQL查询或更新。
- 处理查询结果(如果有)。
- 关闭连接、Statement和ResultSet。
-
在Java中如何加载数据库驱动程序?
答案:
Class.forName("com.mysql.cj.jdbc.Driver");
-
如何建立数据库连接?
答案:
String url = "jdbc:mysql://localhost:3306/database_name"; String username = "your_username"; String password = "your_password"; Connection connection = DriverManager.getConnection(url, username, password);
-
什么是PreparedStatement?与Statement有什么区别?
答案:
PreparedStatement
是Statement
的子接口,它允许通过预编译SQL语句来执行参数化查询。相对于Statement
,PreparedStatement
的主要优势是更高的性能和防止SQL注入攻击。 -
如何执行查询并获取结果集?
答案:
Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name"); while (resultSet.next()) {// 处理每一行的数据 }
-
什么是连接池?为什么要使用连接池?
答案:
连接池是一组数据库连接的缓存,它们被重复使用,而不是每次请求都创建新的连接。使用连接池可以提高性能,减少因为频繁创建和关闭连接而引起的开销,同时能更好地管理数据库连接的资源。 -
如何处理事务?
答案:
try {connection.setAutoCommit(false);// 执行SQL语句connection.commit(); } catch (SQLException e) {connection.rollback(); } finally {connection.setAutoCommit(true); }
-
什么是事务隔离级别?有哪些事务隔离级别?
答案:
事务隔离级别定义了事务之间的可见性。常见的隔离级别包括读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。 -
怎样防止SQL注入攻击?
答案:
使用PreparedStatement或者使用参数化的SQL语句可以有效地防止SQL注入攻击。这样可以确保用户输入不被当做SQL代码的一部分执行。
在准备面试时,还应该考虑与项目经验、性能优化、数据库设计等相关的问题。