当前位置:Gxlcms > 数据库问题 > Java——JDBC小结

Java——JDBC小结

时间:2021-07-01 10:21:17 帮助过:4人阅读


在第一眼看到这个名词之前,我觉得有必要知道它的英文全称是什么,Java Database Connectivity,从英文字面上理解就直译为
可连通的Java数据库,说白了也就是想提供一套中间环节,去连接Java代码与数据库,使之可以直接通过操作Java代码就可以控制数据库。

2.JDBC的实质
它是Java访问数据库的解决方案,希望能过用同样的方式访问不同的数据库,以达到实现与具体数据库无关的Java操作界面。
JDBC实质上就是就是一套标准化的接口,不同的数据库厂商根据自己的数据库特点去实现这套接口,实现的具体方法无需我们去关心。

JDBC中数据库厂商实现的主要接口如下:


DriverManager :驱动管理

Connection、
DatabaseMetaData :连接接口

Statement、
PreparedStatement
CallableStatement: 语句对象接口

ResultSet、
ResultSetMetaData: 结果集接口

3.JDBC的工作原理
程序员调用的是底层数据库厂商实现的部分,
即:1)通过Connection 接口实现第一步的连接
2)通过Statement结果传送sql语句
3)数据库返回结果保存到ResultSet结果集合接口中
主要流程可归纳为:

1)加载驱动,创建连接

2)创建语句对象

3)执行SQL语句

4)发回结果集

5)关闭连接

下面我以我学的oracle数据库配合eclips为例逐步阐述一下如何实现JDBC

1)加载驱动

使用的方法为:Class.forName(“驱动”);

对于如何获得到这个驱动,我所知道的方法是:展开JDBC的jar包,如我使用的是ojdbc6.jar,在里面找到oracle.jdbc.driver,在里面再找到OracleDriver然后鼠标右键点qualitycopy,粘贴到引号之中即可,如:Class.forName("oracle.jdbc.driver.OracleDriver");

2)创建连接

使用的方法为: conn=DriverManager.getConnection(“jdbc:oracle:thin:@IP地址:1521:orcl","数据库账号","数据库密码”);

如:conn=DriverManager.getConnection("jdbc:oracle:thin:@172.16.3.8:1521:orcl","jsd1601","jsd1601");

3)创建语句对象

使用的方法为:Statement stmt=conn.createStatement();

需要注意的是,使用的是第二步上面创建出来的连接去调用方法

调用executeUpdate方法将sql语句传入其中即可执行所写的sql语句,这里需要注意的是,executeUpdate方法能执行的sql种类为insert,update,delete

如:      Statement stmt=conn.createStatement();
            String sql="insert into emp_jiawenzhe(empno,ename,sal,deptno) values(1000,‘贾文哲‘,1500,10)";
            int i=stmt.executeUpdate(sql);

这里面的返回值i就是受影响的行数,我们可以根据这个受影响的行数来判断是否操作成功

4)而对于返回的结果集主要是指进行select操作(这里暂不提)

5)最后关闭连接

如:conn.close();

列举一整体代码,包括注释:

 1 package jdbc_day01;
 2 import java.sql.*;
 3 /**
 4  * 演示JDBC的操作步骤
 5  * 1、加载驱动程序
 6  * 2、创建连接
 7  * 3、创建语句对象
 8  * 4、发送SQL语句
 9  * 5、如果发送的是select语句,处理结果集
10  * 6、关闭连接
11  * @author jiawenzhe
12  *
13  */
14 public class JDBCDome01 {
15     public static void main(String[] args) throws SQLException {
16         //需求:创建一个员工,员工号,员工名,工资,部门号
17         //1、
18         Connection conn=null;
19         try {
20             Class.forName("oracle.jdbc.driver.OracleDriver");
21             System.out.println("驱动加载成功");
22             //2、
23              conn=
24     DriverManager.getConnection("jdbc:oracle:thin:@172.16.3.8:1521:orcl","jsd1601","jsd1601");
25             System.out.println(conn.getClass().getName());
26             //3、
27             //Statment 语句对象。发送并执行SQL语句
28             /*
29              * int excuteUpdate(String sql);
30              * 发送insert,update,delete语句
31              * 返回值int表示影响数据库表的行数
32              */
33             Statement stmt=conn.createStatement();
34             String sql="insert into emp_jiawenzhe(empno,ename,sal,deptno) "
35                     + "values(1000,‘王小二‘,1500,10)";
36             int i=stmt.executeUpdate(sql);
37             if(i>0){
38                 System.out.println("保存成功!");
39             }
40         } catch (ClassNotFoundException e) {
41             e.printStackTrace();
42             //1、记录日志
43             //2、通知调用者
44             throw new RuntimeException("加载驱动错误",e);
45         }finally{
46             //关闭连接
47             if(conn!=null){
48                 try {
49                     conn.close();
50                 } catch (SQLException e) {
51                     e.printStackTrace();
52                 }
53             }
54         }
55 
56         
57         
58         
59     }
60 }
注:oracle数据库可以使用的jar包:ojdbc14.jar/ojdbc6.jar(oracle12c用这个)

mysql数据库可以使用的jar包:mysql-connector-java-5.0.4-bin.jar

加载驱动类:

Class.forName("com.mysql.jdbc.Driver");

未完待续!

---恢复内容结束---

Java——JDBC小结

标签:

人气教程排行