通过Driver接口获取数据库连接【佟刚版】

来源:互联网 发布:网络大v怎么赚钱 编辑:程序博客网 时间:2024/05/21 13:30

一、前序

1、JDBC API是一系列的接口

   1- Driver--Connection--Statement--Result

二、通过Driver接口获取数据库连接

1、搭建步骤:

     1- 创建一个包,创建一个工具类


     2- 加入oracle驱动:

       *  1.首先在项目目录下建立一个lib文件夹,添加驱动
       *  2.在Oracle安装目录下找到ojdbcd的驱动
       *  3.右击build-path下,add to buildpath添加到类根目录下

    3、编码具体如下:

package com.stomost.jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
import java.util.Properties;

import oracle.jdbc.OracleDriver;

import org.junit.Test;

public class JDBCTest {
    /**
     * Driver是一个接口,数据库厂商必须提供实现的接口,能从中获取数据库。
     * 可以通过Driver的实现类对象获取数据库连接。
     *
     * @throws SQLException
     */
    @Test
    public void testDriver() throws SQLException {
        //1、创建一个Driver实现类对象
        Driver driver = new OracleDriver();
        
        //2、准备连接数据库的基本信息:url、user、password
        String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //链接字符串
        Properties info = new Properties();
        info.put("user","point");
        info.put("password","789");
        
        //3、调用Driver 接口的 connect(url,info)获取数据库连接
        Connection connection=driver.connect(url, info);
        System.out.print(connection);
    }

}


2、解耦修改


1、需求修改:

    /**
     * 编写一个通用的方法,在不修改程序的情况下,可以获取任何数据库的连接
     * 解决方案:
     * 1-把数据库驱动Driver,实现类的全类名、url、user、password放入一个配置文件中,
     * 2-通过修改配置文件的方式实现和具体的数据库解耦
     * @throws Exception
     */

2、编码如下:

    public Connection getConnection() throws Exception{
        String driverClass = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        //读取类路径下的jdbc.properties文件
        InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
        Properties properties = new Properties();
        properties.load(in);
        driverClass = properties.getProperty("driver");
        jdbcUrl = properties.getProperty("jdbcUrl");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
        
        //通过反射常见Driver对象
        Driver driver = (Driver)Class.forName(driverClass).newInstance();
        
        Properties info = new Properties();
        info.put("user", user);
        info.put("password", password);
        
        //通过Driver的connction方法获取数据库
        Connection connection =driver.connect(jdbcUrl, info);
        return connection;
    }
    @Test
    public void testGetConnection() throws Exception{
        System.out.println(getConnection());
    }


porperties文件

driver=oracle.jdbc.driver.OracleDriver
jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
user=point
password=789



第一次写,希望朋友们指点一下。如果有哪里不明白的,可以留言,谢谢大家

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 有行车记录仪遇到碰瓷怎么办 狗换了主人不吃怎么办 遇到扔东西碰瓷怎么办 碰见碰瓷的人怎么办 开店遇上碰瓷的顾客怎么办 我刮到别人的车怎么办 新车被刮了漆怎么办 停车擦到别人车怎么办 骑自行车被汽车撞了怎么办 车停在小区被刮怎么办 机动车被自行车撞了怎么办 单车撞小车后被起诉怎么办 给小车撞到电动单车怎么办 车停在路边被自行车撞怎么办 撞了碰瓷的人怎么办 谷丙转氨酶46该怎么办 渣土车开飞机了怎么办 自己车撞自己车怎么办 撞了人没钱赔怎么办 闯红灯扣了6分怎么办 开共享汽车闯红灯了怎么办 新手如果不小心闯红灯怎么办 红绿灯左转车道直行了怎么办 跟着大车后面闯了红灯怎么办 宝宝私处好红怎么办呢 甲亢难怀孕怎么办才好 怀孕8周查出甲亢怎么办 电动车被交警拖走了怎么办 电动车车被城管拖走了怎么办 12123地理反编码失败怎么办 苹果手机地理反编码失败怎么办 城管执法过程被打怎么办 老婆看不起老公不让碰怎么办 老婆总不让碰该怎么办 机动车扣满12分怎么办 吊车吊运货物失控应该怎么办 车辆违章扣6分怎么办 最新交通法扣满12分怎么办 违章停车单丢了怎么办 违停告知单掉了怎么办 违章停车扣3分怎么办