JDBC使用的五大步骤
Java开发任何数据库应用程序都需要4个主要接口:Driver,Connection,Statement和ResultSet。这些接口定义了使用SQL访问数据库的一般架构。访问数据库的Java程序主要有5个步骤
1.加载驱动(Driver)(仅仅做一次)
2.建立连接 (Connection)
3.创建运行SQL的语句(Statement)
4.运行语句
5.获取结果(ResultSet)
6.关闭资源
1.使用JDBC第一步:注冊驱动有三种方式:
- Class.forName(“com.mysql.jdbc.Driver”);
推荐这样的方式,不会对详细的驱动类产生依赖
- DriverManager.registerDriver(com.mysql.jdbc.Driver);
会对详细的驱动类产生依赖
- System.setProperty(“jdbc.drivers”, “driver1:driver2”);
尽管不会对详细的驱动类产生依赖;但注冊不太方便。所以非常少使用
2.使用JDBC第二步:建立连接
通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。
建立Connection接口类对象:
Connection conn = DriverManager.getConnection(url, user, password);
当中URL的格式要求为:
JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“
user即为登录数据库的username,如root
password即为登录数据库的密码,为空就填””
3.使用JDBC第三步:创建运行对象
运行对象Statement负责运行SQL语句。由Connection对象产生。
Statement接口类还派生出两个接口类PreparedStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据訪问功能。
创建Statement的语法为:
Statement st = conn.createStatement();
4.使用JDBC第四步:运行SQL语句
运行对象Statement提供两个经常使用的方法来运行SQL语句。
executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
如:ResultSet rs =st.executeQuery(sql);
executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
如:int flag = st.executeUpdate(sql);
5.使用JDBC第五步:处理运行结果
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。
6.使用JDBC 第六步——释放资源
Connection对象的close方法用于关闭连接,并释放和连接相关的资源。
举个栗子
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class UseJdbc {
public void Jdbc() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动程序
//建立连接 "jdbc:mysql://localhost/数据库名?serverTimezone=UTC", "账号", "密码"
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/user?serverTimezone=UTC", "root", "1234");
//创建语句
Statement statement = connection.createStatement();
//用executeQuery执行SQL查询语句
ResultSet resultSet = statement.executeQuery("select * from user");
//获取并输出返回结果
System.out.println(resultSet);
//关闭连接
connection.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}