以下是几个常见的关于JDBC部分的面试题:
- 阐述JDBC操作数据库的步骤。
- Statement和PreparedStatement的区别?哪个性能更好?
- 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- 在进行数据库编程时,连接池有什么作用?
- 什么是DAO模式?
- 事务的ACID指什么?
- JDBC中如何进行事务处理?
- JDBC能否处理Blob和Clob。
一:阐述JDBC操作数据库的步骤。
首先从第一个面试题开始进行实操,实例描述关于JDBC操作数据库的步骤。
使用elipse开发环境,数据库采用mysql数据库。
1)先创建一个测试数据库jdbcTest,建立一张学生信息表
create table student(
id char(8) primary key,
name varchar(8) not null,
age int not null,
sex varchar(2) not null,
address varchar(20) not null);
insert into student values('20150001','章三',15,'男','福建省福州市');
insert into student values('20150002','李四',15,'女','福建省福州市');
insert into student values('20150003','王五',15,'女','福建省厦门市');
2)用一个测试类来阐述操作数据库的步骤,项目要配置好jdbc的jar包
下面是整个实例代码
package jdbcTest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
class JdbcConn {
// 定义数据库基础信息
static final String className = "com.mysql.jdbc.Driver";
static final String url = "jdbc:mysql://localhost:3306/jdbcTest";
static final String username = "root";
static final String password = "12345678";
static Connection conn = null;
static PreparedStatement preparedStatement = null;
// 开启连接
JdbcConn(String sql) {
try {
Class.forName(className); // 加载驱动
conn = DriverManager.getConnection(url, username, password); // 创建连接
preparedStatement = conn.prepareStatement(sql); // 创建语句
} catch (Exception e) {
e.printStackTrace();
}
}
// 关闭连接
void closeDBManager() {
try {
this.preparedStatement.close();
this.conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String sql = "select * from student";
JdbcConn jdbcConn = new JdbcConn(sql);
String id,name,sex,address;
int age;
try {
ResultSet res = jdbcConn.preparedStatement.executeQuery(); //执行语句
while(res.next()) { // 处理结果
id = res.getString(1);
name = res.getString(2);
age = res.getInt(3);
sex = res.getString(4);
address = res.getString(5);
System.out.println("学生id:" + id + '\t' + "学生姓名:" + name + '\t' + "学生年龄:" + age + '\t' + "学生性别:" + sex + '\t' + "学生住址:" + address);
}
res.close();
jdbcConn.closeDBManager(); //关闭资源
}catch(Exception e) {
e.printStackTrace();
}
}
}
输出结果展示:
数据库结果展示:
连接测试成功。
3