一、JDBC作用
JDBC(Java DataBase Connectivity)就是Java数据库连接,简单说就是封装了java语言操作不同据库(例如:mysql,oracle、sqlServer等数据库)的接口,各个数据库厂商实现这个接口。因此java语言可以通过JDBC操作各个数据库。
二、JDBC的工作原理
SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准
各个数据库厂商会提供一套API用来访问自己公司的数据库服务器,且API遵循SUN的规范
JDBC是里面封装着操作各数据库的接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。
三、JDBC API:
1.DriverManager类 作用:管理各种不同的JDBC驱动
2.Connection接口:负责连接数据库并担任传送数据的任务
3.Statement接口:由 Connection 产生、负责发送执行SQL语句
4.ResultSet接口:负责保存Statement执行后所产生的查询结果
四、JDBC 驱动
由数据库厂商提供
作用:负责连接各种不同的数据库
五、API与驱动作用:
与数据库建立连接、发送 操作数据库的语句并处理结果
六、使用JDBC连接数据库的步骤
1、加载一个Driver驱动
调用方法java.lang.Class.forName()加载驱动:
以mysql为例:
Class.forName(“com.mysql.JDBC.Driver”);//MySql的8.X版本以下的JDBC驱动程序
Class.forName(“com.mysql.cj.JDBC.Driver”);//MySql的8.X版本以上的JDBC驱动程序
其他数据库驱动:
oracle.JDBC.driver.OracleDriver//Oracle的JDBC驱动程序
com.microsoft.JDBC.sqlserver.SQLServerDriver//SQL Server的JDBC驱动程序
com.ibm.db2.JDBC.app.DB2Driver //DB2的JDBC驱动程序
2、创建连接(需要数据库用户名、密码、url)
Connection conn=null;
String url=“jdbc:oracle:thin:@localhost:1521:orcl”;
String user=“scott";
String password=“tiger";
conn = DriverManager.getConnection(url, user, password);
3、创建SQL命令执行器Statement
Statement对象用于将 SQL 语句发送到数据库中,或者理解为执行sql语句。
有三种 Statement对象:
Statement:用于执行不带参数的简单SQL语句;
PreparedStatement(从 Statement 继承):用于执行带或不带参数的预编译SQL语句;(推荐使用)
CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用。
4、通过Statement发送SQL命令并处理SQL结果
ResultSet对象是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。
ResultSet里的数据一行一行排列,每行有多个字段,且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。
ResultSet对象自动维护指向当前数据行的游标。每调用一次next()方法,游标向下移动一行。
初始状态下记录指针指向第一条记录的前面,通过next()方法指向第一条记录。循环完毕后指向最后一条记录的后面。
5、关闭数据库资源
用户不必关闭ResultSet。当它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该ResultSet将被自动关闭。
注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接是才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所以不能先关闭Connection。