JDBC连接

※ JDBC

sun公司给出的一套标准(接口),该标准规定了如何连接数据库,具体的实现是由各大数据库运营商提供实现
TCP/IP+数据库底层协议

※ Java中对数据库用到的接口和类(具体查看API)
接口
java.sql.Driver 驱动程序的接口
java.sql.Connection 获取连接(通信信道)
java.sql.Statement
java.sql.PreparedStatment 对SQL编译
java.sql.ResultSet 结果集(存储的是数据库返回的结果(select))


java.sql.DriverManager 对驱动程序进行管理

※ 连接数据库的六大步骤

第一步:注册驱动 (告知JVM连接的数据库是谁,加载实现的代码)
第二步:获取连接对象(基于协议连接数据库,并且验证用户名和密码是不是正确)
第三步:构建Statement和PreparedStatement对象(对SQL语句编译)
第四步:执行SQL语句
第五步:看第四步有没有结果返回,有结果返回处理结果集,没有结果集返回,直接忽略该步;
第六步:关闭资源(先开后关)
这里写图片描述

※ Jdbc连接数据库的四种驱动方式

※ 1 .jdbc-odbc桥接方式
要求使用者必须安装jdbc-odbc驱动程序,该程序是二进制
(e.g.: oil.dll)
执行过程:
Java程序->odbc借助驱动java代码编程成标准的数据库语言->数据库
优点:安装驱动可以连接上所有的数据库
缺点:用户要安装驱动

※ 2 .本地API驱动
要求用户安装驱动包(针对某一个数据库),其实就是代码库
执行流程:
java程序->代码库->数据库

※ 3 .网络协议驱动
需要安装jdbc-odbc驱动或本地API驱动的服务器作为媒介
执行的流程:
java程序-(网络)->网络服务器(转换)->数据库
优点:用户不需要安装任何驱动,并且驱动更新方便
缺点:用到网络。

※ 4 .本地api协议
数据库运营商基于sun公司提供接口,按照规范实现的代码,具体体现jar包,用户使用只需要下载jar包(Oracle14.jar,Oracle6.jar,Oracle5.jar,mysql-5.5-xxx.jar,sqlserverxxx.jar等)

oracle14_g.jar 测试包
Oracle14.jar 开发包
这里写图片描述
※ A .注册驱动(四种方法)
※ 1 .注册驱动(常用)

Class.forName(“oracle.jdbc.driver.OracleDriver”);
 Connection conn=
 DriverManager.getConnection(url, user,password);

※ 2 .手动注册驱动

 Driver driver=new OracleDriver();
 DriverManager.registerDriver(driver);
 Connection conn=
 DriverManager.getConnection(url, user,password);

※ 3 .注册驱动给虚拟机传如参数

System.setProperty(“jdbc.drivers”,”oracle.jdbc.driver.OracleDriver”);
 Connection conn=
 DriverManager.getConnection(url, user,password);

※ 4 .注册驱动给虚拟机传如参数
第一步:

 Connection conn=
 DriverManager.getConnection(url, user,password);

第二步:

点击程序右键-》run as ->run Configuration-> arguments->VM arguments
->文本框填入-Djdbc.drivers=oracle.jdbc.driver.OracleDriver->run直接运行

注意:运行的时候给虚拟机传参数=前后必须不能有空格

/*  jdbc.txt 文件
*   user=jd1812
*   password=briup
*/



//四种注册方法
package com.briup.jdbc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import oracle.jdbc.driver.OracleDriver;

public class FirstJdbc {
    //数据库连接的四要素
    //1.驱动程序(ojdbc.jar包的地址)
    private String driver="oracle.jdbc.driver.OracleDriver";
    //2.请求资源定位协议 url(数据库位置)
    //OracleServiceXE
    //协议语法 jdbc:子协议:[连接方式]:@host:port:db?key=value...
    private String url="jdbc:oracle:thin:@192.168.43.216:1521:XE";
    //3.用户名
    private String user="jd1812";
    //4.密码
    private String password="briup";
    public static void main(String[] args) {
      //new FirstJdbc().registerDriver4();
        new FirstJdbc().createConnection();
    }
    public void createConnection(){
        Connection conn=null;
        try {
            Class.forName(driver);
            Properties pro=new Properties();
        //可以把数据写在文本中,用properties类中load()方法,方便数据修改
            pro.load(new FileInputStream("src/com/briup/jdbc/jdbc.txt"));
//          pro.setProperty("user", "jd1812");
//          pro.setProperty("password", "briup");
            conn=DriverManager.getConnection(url,pro );
            System.out.println(conn);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public void registerDriver4(){
        Connection conn=null;
        //运行的过程给虚拟机传参数
        //-Djdbc.drivers=oracle.jdbc.driver.OracleDriver
        try {
            conn=DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public void registerDriver3(){
        Connection conn=null;
        //给虚拟机传参数,注册驱动
        //jdbc.drivers=oracle.jdbc.driver.OracleDriver
        System.setProperty("jdbc.drivers", "oracle.jdbc.driver.OracleDriver");
        try {
            conn=
            DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public void registerDriver2(){
        Connection conn=null;
        try {
            //手动注册驱动,不要四要素中的driver
            Driver driver=new OracleDriver();
            DriverManager.registerDriver(driver);
            conn=
            DriverManager.getConnection(url, user, password);
           System.out.println(conn);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public void registerDriver1(){
        Connection conn=null;
        //第一步注册驱动
        try {
            Class.forName(driver);
            //获取连接
            conn=
                    DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

※ B .获取连接对象(两种方法)

1.
   Connection conn=
   DriverManager.getConnection(url, user,password);
2.
   Properties pro=new Properties();
   pro.setProperty(“user”,”jd1812”);
   pro.setProperty(“password”,”bruin”);
   Connection conn=
   DriverManager.getConnection(url, pro);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值