JDBC为多种关系数据库提供了统一的访问方式,真正的数据库访问操作实现是由各自数据库厂商提供的,通常把厂商提供的特定于数据库的访问API称为数据库JDBC驱动程序。
JDBC使用流程
- 加载数据库驱动
通过字符串传入,加载MySql数据库,可以达到解耦的效果:Class.forName("com.mysql.jdbc.Driver");
- 建立数据库连接
Connection connection=DriverManager.getConnection(String url,String user,String passward )
- 创建操作命令
Statement statement=connection.createStatement();
- 执行SQL语句
执行查询语句:ResultSet resultSet = statement.executeQuery(String sql);
执行修改或更新语句:ResultSet resultSet =statement.executeUpdate(String sql)
- 返回结果集
若执行的是查询语句,则返回查询结果
若执行的是更新操作,则返回值为一个整数,指示受影响的行数 - 处理结果
ResultSet对象被称为结果集,它代表复合SQL语句条件的所有行,并且通过getXXX方法对这些行中的数据进行访问 - 关闭结果集
- 关闭操作命令
- 关闭连接
JDBC编程会容易有SQL注入攻击,因此在实际编程中,一般使用预编译指令操作类PreparedStatement类来应对,PreparedStatement类的特点有:
- 赋值参数从下标1开始,防止SQL注入
- 占位符 ? 下标从1开始
- 占位符不能使用多值
- 参数化SQL查询
- SQL预编译
- 性能比Statement高