今天面试了一个中级程序员,我问他什么是JDBC,为什么要有JDBC。他的回答只有一句话:“JDBC就是连接数据的。”其它的什么也说不出来了。我再问:JDBC的实现者是哪个。他回答:SUN公司。
JDBC是SUN公司制定的一套接口,既然是接口那么就有实现者和调用者,各大数据库厂商就是实现者,我们开发人员就是调用者。这就是面向接口开发,也叫面向抽象开发。如果让SUN公司去实现对数据的链接,那么有那么多的数据库每个数据库的底层实现原理都是不一样的,需要开发很多套数据库的链接。所以SUN公司制定一套链接数据库的规范(JDBC)各大数据库厂商按照这套JDBC的规范来实现数据库的链接,那么我们开发人员就不需要关心底层使用的是哪个数据库了,直接根据接口(JDBC)来开发就行。
JDBC开发七大步骤
1、注册驱动
2、获取连接
3、获取数据库操作对象
4、编写sql语句
5、执行sql语句
6、处理结果集(只有查询语句才会有这一步)
7、释放资源
具体代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Driver;
public class JDBCTest {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
// 注册驱动
DriverManager.registerDriver(new Driver());
// 获取连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jd", "root", "1129214631");
// 获取数据库操作对象
statement = connection.createStatement();
// 编写sql语句
String sql = "insert into student(name,address) values ('zhaodong','nanjing')";
// 执行sql语句
int num = statement.executeUpdate(sql);
System.out.println("num:" num);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}