什么是JDBC?
JDBC:Java DataBase Connectivity,Java数据库连接。是Java与各大数据库厂商共同定制的一套接口。
使用步骤
- 引入jar文件。
- 加载数据库驱动:
try {
// 加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException e) {
System.out.println("加载驱动失败!");
e.printStackTrace();
}
mysql6以下使用com.mysql.jdbc.Driver,6以及6以上使用com.mysql.cj.jdbc.Driver
- 通过驱动管理器,获取jdbc连接对象:
String url = "jdbc:mysql://localhost:3306/test"; //mysql
String url1 = "jdbc:oracle:thin:@localhost:1521/ORCL"; //oracle
String username = "root";
String password = "root";
try {
Connection con = DriverManager.getConnection(url , username , password);
} catch(SQLException s) {
System.out.println("数据库连接失败!");
s.printStackTrace();
}
- 通过连接对象,创建sql执行对象:
Statement stmt = con.createStatement(); //执行静态sql
PreparedStatement pstmt = con.prepareStatement(sql); //动态sql,先将参数用?填充,后续通过填充实现。
- 通过sql执行对象,执行sql:
ResultSet rs = stmt.executeQuery(String sql);
int rows = stmt.executeUpdate(String sql); //用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句
boolean flag = stmt.execute(String sql); //返回值为true代表sql语句有返回结果集,false代表sql语句没有返回结果集
- 处理结果集 :
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
while(rs.next()) {
//rs为返回的ResultSet对象
String name = rs.getString("name");
String password = rs.getString(2); // 数字为字段的索引,索引从1开始
}
- 释放连接:顺序为后打开先释放。
if (rs != null) { // 关闭结果集
try {
rs.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) { // 关闭执行对象
try {
stmt.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
if (con != null) { // 关闭连接对象
try {
conn.close();
} catch(SQLException e) {
e.printStackTrace();
}
}