美文网首页
Java学习day-35:JDBC技术

Java学习day-35:JDBC技术

作者: 开源oo柒 | 来源:发表于2019-08-27 21:54 被阅读0次

    一、JDBC简介

    1.什么是JDBC:

    1)JDBC(Java DataBase Connectivity)java 数据库连接;

    2)是 JavaEE 平台下的技术规范;

    3)定义了在 Java 语言中连接数据,执行 SQL 语句的标准;

    4)可以为多种关系数据库提供统一访问;

    2.什么是数据库驱动程序:

    1)数据库厂商对 JDBC 规范的具体实现

    2)不同数据产品的数据库驱动名字有差异

    3)在程序中需要依赖数据库驱动来完成对数据库的操作

    3.程序操作数据库流程:

    二、JDBC中常用接口与类

    1.Driver 接口:

    Driver 接口的作用是来定义数据库驱动对象应该具备的一些能力。在程序中要连接数据库,必须先通过 JDK 的反射机制加载数据库驱动类,将其实例化。不同的数据库驱动类的类名有区别。

    加载MySql驱动:Class.forName("com.mysql.jdbc.Driver");

    加载 Oracle 驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

    2.DriverManager 类:

    DriverManager 通过实例化的数据库驱动对象,能够建立应用程序与数据库之间建立连接。并返回 Connection 接口类型的数据库连接对象。

    常用方法:

    getConnection(String jdbcUrl, String user, String password);

    该方法通过访问数据库的 url、用户以及密码,返回对应的数据库的 Connection 对象。

    3.Connection 接口:

    Connection 与数据库的连接(会话)对象。我们可以通过该对象执行 sql 语句并返回结果。

    连接 MySql 数据库:

    Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");

    连接 Oracle 数据库:

    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database","user", "password");

    连接 SqlServer 数据库:

    Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port;DatabaseName=database", "user", "password");

    (1)常用方法:

    1)createStatement():创建向数据库发送 sql 的 Statement 接口类型的对象。

    2)preparedStatement(sql) :创建向数据库发送预编译 sql 的 PrepareSatement 接口类型的对象。

    3)prepareCall(sql):创建执行存储过程的 CallableStatement 接口类型的对象。

    4)setAutoCommit(boolean autoCommit):设置事务是否自动提交。

    5)commit() :在链接上提交事务。

    6)rollback() :在此链接上回滚事务。

    4.Statement 接口:

    用于执行静态 SQL 语句并返回它所生成结果的对象。由 createStatement 创建,用于发送简单的 SQL 语句(不支持动态绑定)。

    (1)常用方法:

    1)execute(String sql):执行参数中的 SQL,返回是否有结果集。

    2)executeQuery(String sql):运行 select 语句,返回 ResultSet 结果集。

    3)executeUpdate(String sql):运行 insert/update/delete 操作,返回更新的行数。

    4)addBatch(String sql) :把多条 sql 语句放到一个批处理中。

    5)executeBatch():向数据库发送一批 sql 语句执行。

    5.PreparedStatement 接口:

    继承自 Statement 接口,由 preparedStatement 创建,用于发送含有一个或多个参数的 SQL 语句。

    优点:执行效率高、代码可读性强、安全性高。

    (1)常用方法:

    1)addBatch()把当前 sql 语句加入到一个批处理中。

    2)execute() 执行当前 SQL,返回个 boolean 值;

    3)executeUpdate()运行 insert/update/delete 操作,返回更新的行数。

    4)executeQuery() 执行当前的查询,返回一个结果集对象;

    5)setDate(int parameterIndex, Date x)向当前SQL语句中的指定位置绑定一个java.sql.Date值。

    6)setDouble(int parameterIndex, double x)向当前 SQL 语句中的指定位置绑定一个 double值。

    7)setFloat(int parameterIndex, float x)向当前 SQL 语句中的指定位置绑定一个 float 值。

    8)setInt(int parameterIndex, int x)向当前 SQL 语句中的指定位置绑定一个 int 值;

    9)setString(int parameterIndex, String x)向当前 SQL 语句中的指定位置绑定一个 String 值。

    6.ResultSet 接口:

    ResultSet 提供检索不同类型字段的方法。

    常用方法:

    1)getString(int index)、getString(String columnName):获得在数据库里是 varchar、char 等类型的数据对象;

    2)getFloat(int index)、getFloat(String columnName):获得在数据库里是 Float 类型的数据对象。

    (1)ResultSet 对结果集进行滚动的方法:

    1)next():移动到下一行。

    2)Previous():移动到前一行。

    2)absolute(int row):移动到指定行。

    3)beforeFirst():移动 resultSet 的最前面。

    4)afterLast() :移动到 resultSet 的最后面。

    7.CallableStatement 接口:

    继承自 PreparedStatement 接口,由方法 prepareCall 创建,用于调用数据库的存储过程。

    三、JDBC的使用

    1. JDBC访问数据库步骤:

    1)加载一个Driver驱动;

    2)创建数据库连接(Connection);

    3)创建SQL命令发送器Statement;

    4)通过Statement发送SQL命令并得到结果;

    5)处理结果(select语句);

    6)关闭数据库资源;

    2.封装JDBC工具类:

    (1)封装工具类:

    封装工具类

    (2)JDBC访问数据库:

    操作数据库

    3.SQL注入问题:

    (1)什么是SQL注入?

    所谓 SQL 注入,就是通过把含有 SQL 语句片段的参数插入到需要执行的 SQL 语句中,最终达到欺骗数据库服务器执行恶意操作的 SQL 命令。

    密码不正确时,仍然可以成功登陆;

    4.PreparedStatement 对象的使用:

    1)PreparedStatement 接口继承 Statement 接口;

    2)PreparedStatement 效率高于 Statement;

    3)PreparedStatement 支持动态绑定参数;

    4)PreparedStatement 具备 SQL 语句预编译能力;

    5)使用 PreparedStatement 可防止出现 SQL 注入问题。

    (2)通过 PreparedStatement 对象向表中插入数据使用properties配置文件:

    工具类 操作数据

    相关文章

      网友评论

          本文标题:Java学习day-35:JDBC技术

          本文链接:https://www.haomeiwen.com/subject/qgvyectx.html