JDBC

来源:互联网 发布:手机锁机软件 编辑:程序博客网 时间:2024/06/05 20:27
JDBC(java database connectivty)
JDBC是java提供一套操作数据库的API,定义了一套用来访问数据库的标准类库;位于java.sql 或者javax.sql;我们可以通过各种数据库建立连接,操作数据库的数据;
原理***
1.java.api定义了一些列的规范,提供的是一系列接口,java并没有实现这些接口,需要数据库产商来实现这些接口;
2.数据库产商将实现的接口封装成了jar包,java程序员需要访问相应的数据库,就必须下载当前数据库对应的驱动;
3.同时JDBC又提供了一个驱动管理器,是一个实现类,用于加载JDBC驱动的各个类,生成数据的连接,访问各个数据库都要用到驱动管理器;
工作原理***
应用程序---java.API---驱动管理器---JDBC驱动---网络协议API---数据库
JDBC驱动分类
四种:在实际开发中任何选中驱动包1.如果编写的程序只访问一个数据库,推荐第四种2.如果程序需要访问多个数据库,推荐第三种3.第三种和第四种都不合适的数据库,则使用第二种4.第一种基本上不会考虑,因为严重依赖于底层windows,移植性差,效率低;
JDBC API
Driver接口:是所有JDBC都要实现的一个接口,提供给数据库产商使用的,让数据库产商去实现;在程序中是不会直接调用Driver,要通过DriverManager调用实现;驱动管理器:DriverManager,用于管理驱动;Connection:用于与特定数据库建立连接;Statement:用于执行静态的sql语句,通过调用Connection里面提供的一个方法:CreateStatement()创建对象;PreparedStatement:预编译的sql语句,也是通过Connection对象来创建;CallableStatement:用于执行数据库里面储存过程;ResultSet:用于接收sql查询的返回值,并且处理返回值;
JDBC连接数据的步骤***
1.根据应用程序访问不同的数据库,加载不同的驱动类型;2.连接到数据库,得到Connection对象;3.通过Connection对象产生Statement(或者PreparedStatement、CallableStatement),执行sql语句;4.返回结果集(ResultSet);5.回收资源,关闭该关闭的连接;
Statement和PreparedStatement的区别
Statement执行的是静态的sql,preparedStatement执行的是动态的sqlStatement每次执行都要编译sql语句,preparedStatement只编译一次,以后进来直接调用,不再进行编译;Statement可能发生sql注入,preparedStatement可以防止sql注入;