JDBC代码实现之第一版

JDBC代码实现之第一版:注册驱动与创建、关闭连接

前言

前述已经对JDBC的概念,原理和使用,简单的做了介绍,以及完成了导包等相关准备工作,之后,就可以切入正题了,根据JDBC的使用步骤,下面演示如何创建连接,那么,在创建连接之前,还需要注册驱动

注册驱动:

注册驱动的目的就是告诉DriverManager,我要用哪套驱动,实际上就是一句话:

//装载驱动类,驱动类通过static块实现在DriverMananger中的"自动注册"
Class.forName(“oracle.jdbc.driver.OracleDriver”);

调用Class类的forName方法,这个方法需要传入一个参数,是我所要用的那个驱动类的类名。关于这个类名,我们可以去这个,提供驱动的那个公司的官网上,就可以看到。那么Oracle的驱动类的类名叫OracleDriver,当然,前面还有包名:“oracle.jdbc.driver.OracleDriver”,实际上,这就是导入的Oracle驱动包中的一个类。 打开Maven Dedendencies可以找到这个类:

Maven Dependencies
---- ojdbc14-10.2.0.4.0.jar
-------- oracle.jdbc.driver.OracleDriver.class

另外,我们也可以直接Ctrl+Shift+T进行模糊查询,Ora*Driver,可以搜到两个,一个包叫oracle.jdbc,一个包叫oracle.jdbc.driver,这两个都可以,我们使用第二个包的类:oracle.jdbc.driver.OracleDriver,连带着包名加类名一起复制加双引号,粘贴到Class.forName()方法里,当然,这个方法声明抛了异常,我们对异常进行try-catch处理下这个异常,因为是测试方法,catch到异常,看一下什么问题,就不去对异常进行处理了。代码如下:

//代码实现之注册驱动
try {
Class.forName(“oracle.jdbc.driver.OracleDriver”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

创建连接:

注册完驱动以后,紧接着需要创建连接,具体的代码实现也是一句话:

//Connection只是接口!真正的实现是由数据库厂商提供的驱动包完成的。根据url连接参数找到与之匹配的Driver对象,调用其方法获取连接。
conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”, “SYSxxx”, “Oraclexxx”);

创建连接不用我们自己去new,实例化一个连接,我们调用DriverManager,这个类在jdk里的java.sql包下,它会帮我们实例化一些内容。DriverManager给我们提供了一个静态方法getConnection(),直接能够给我们创建一个连接Connection的实例对象。而Connection本身是一个接口,也是在jdk的java.sql包下,所以,表面看DriverManager给我们返回的是接口类型,但他实际返回的是实现类,只不过我们用这个实现类实现的接口去接收了这个实现类,进行向上转型的多态处理。然后呢,它需要传三个参数:

  • 第一个参数:是这个数据库的访问路径,这个路径包括,数据库的IP地址,端口 和 数据库的SID,把这些东西组织在一起,有固定的格式。
    >“jdbc:oracle:thin:IP:PORT:SID”//其中"jdbc:oracle:thin"固定写法
  • 第二个参数:是访问数据库的账户,用户名。
  • 第三个参数:是访问数据库的密码,口令。

另外,这个getConnection()方法也声明抛了异常,我们也catch下这个异常,因为是测试代码,依然不做处理。代码如下:

public void test1() {
System.out.println(1);
try {
//注册驱动
Class.forName(“oracle.jdbc.driver.OracleDriver”);
//创建连接
Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@192.168.43.xxx:orcl”, “SYSxxx”, “Oraclexxx”);
System.out.println(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

关闭连接:

  • 注册驱动,创建连接之后,这就已经可以开始工作了,但是还有一点不太合理的地方,创建完连接以后,最后一定要关闭,无论如何都要关闭,如果不关闭连接的话,这个连接一直被长期占据着,这个时间一长,数据库就崩溃了。因为我们应该是,无论如何都要关闭,应该在finally当中关闭,finally当中写。
  • 关闭连接是调用连接Connection的close();方法。但是Connection声明在了try-catch代码块中,是局部变量,没有办法调用它的close()方法,所以,需要把Connection在try-catch外面声明为成员变量。

    Connection conn = null;//声明在try-catch块外部
    conn.close();//声明异常

  • 最后我们调用Connection关闭连接的方法conn.close();时,这句话也声明报了异常,也需要进行try-catch,具体实现代码如下:

    package test;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import org.junit.Test;
    public class Test {
    @Test
    public void test1() {
    Connection conn = null;
    try {
    //注册驱动
    Class.forName(“oracle.jdbc.driver.OracleDriver”);
    //创建连接
    conn = DriverManager.getConnection(“jdbc:oracle:thin:@192.168.43.xxx:orcl”, “SYSxxx”, “Oraclexxx”);
    System.out.println(conn);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    try {
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值