JDBC使用步骤
- 1 JDBC简述
- 2 JDBC (规范) 使用步骤
- 2.1 导入jar包 : 驱动包
- 2.2 注册驱动(类加载) Class.forName(driverClassName)
- 2.3 获取连接 Connection: DriverManager.getConnection(url,username,password)
- 2.4 获得 PreparedStatement: connection.prepareStatement(sql)
- 2.5 执行sql语句(之前需要设置参数setString/Int): stmt.executeUpdate() executeQuery()
- 2.6 处理结果集 ResultSet: next() getString/Int/Date(fieldName/columnIndex)
- 2.7 释放资源 close()
1 JDBC简述
JDBC规范定义接口,具体的实现由各大数据库厂商来实现。
JDBC是Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供。
1.1 JDBC的核心API
接口或类 | 作用 |
---|---|
DriverManager 类 | 1.管理和注册数据库驱懂 2.得到数据库连接对象 |
Connection 接口 | 一个链接对象,可用于创建 Staement 和 PrepaerdStatement 对象 |
Statement 接口 | 一个SQL语句对象,用于将SQL语句发送给数据库服务器。 |
PrepaerdStatement 接口 | 一个SQL语句对象,是 Statement的子接口 |
ResultSet 接口 | 用于封装数据库查询结果集,返回个客户端Java程序 |
2 JDBC (规范) 使用步骤
2.1 导入jar包 : 驱动包
2.2 注册驱动(类加载) Class.forName(driverClassName)
public class Demo1 {
public static void main(String[] args) throws ClassNotFoundException {
//抛出类找不到的异常,注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
}
}
2.3 获取连接 Connection: DriverManager.getConnection(url,username,password)
DriverManager类中的静态方法 | 描述 |
---|---|
Connection getConnection (String url, String user, String password) | 通过连接字符串,用户名,密码来得到数据库的连接对象 |
Connection getConnection (String url, Properties info) | 通过连接字符串,属性对象来得到连接对象 |
1.使用用户名、密码、URL得到数据库连接
/**
* 得到连接对象
*/
public class Demo2 {
public static void main(String[] args) throws SQLException {
String url = "jdbc:mysql://localhost:3306/day24";
// 1) 使⽤⽤户名、密码、URL 得到连接对象
Connection connection = DriverManager.getConnection(url, "root", "root");
// com.mysql.jdbc.JDBC4Connection@68de145
System.out.println(connection);
}
}
2.使用属性文件和URL得到链接对象
public class Demo3 {
public static void main(String[] args) throws SQLException {
// URL 连接字符串
String url = "jdbc:mysql://localhost:3306/test";
// 属性对象
Properties info = new Properties();
// 把⽤户名和密码放在 info 对象中
info.setProperty("user", "root");
info.setProperty("password", "root");
Connection connection = DriverManager.getConnection(url, info);
// com.mysql.jdbc.JDBC4Connection@68de145
System.out.println(connection);
}
}
2.4 获得 PreparedStatement: connection.prepareStatement(sql)
Connection接口中的方法 | 描述 |
---|---|
PreparedStatement prepareStatement(String sql) | 指定预编译的SQL语句,SQL语句中使用占位符?创建一个语句对象 |
String sql = "select * from user where username = ? and password = ?";
PreparedStatement stmt = connect.prepareStatement(sql);
stmt.setString(1,user);
stmt.setString(2,pwd);
2.5 执行sql语句(之前需要设置参数setString/Int): stmt.executeUpdate() executeQuery()
PreparedStatement接口中的方法 | 描述 |
---|---|
int executeUpdate() | 执行DML,增删改的操作,返回影响的行数。 |
ResultSet executeQuery() | 执行DQL,查询的操作,返回结果集 |
ResultSet rs = stmt.executeQuery();
2.6 处理结果集 ResultSet: next() getString/Int/Date(fieldName/columnIndex)
ResultSet 接口中的方法 | 描述 |
---|---|
boolean next() | 1.游标向下移动1行 2.返回boolean类型,如果还有下一条记录,返回true,否则返回false |
数据类型 getXxx() | 1.通过字段名,参数是String类型。返回不同的类型 ⒉.通过列号,参数是整数,从1开始。返回不同的类型 |
2.7 释放资源 close()
- 需要释放的对象:ResultSet结果集,Statement语句,Connection连接
- 释放原则:先开的后关,后开的先关。ResultSet → Statement Connection
- 放在哪个代码块中: finally块