Oracle JDBC数据库链接方式

一、链接方式

  • Oracle jdbc配置,以下方式都可以成功连接数据库

SID格式:

jdbc:oracle:thin:@localhost:1521:SID
如: jdbc:oracle:thin:@192.168.1.1:1521:orcl

ServiceName格式:

jdbc:oracle:thin:@//localhost:1521:SERVICENAME
如: jdbc:oracle:thin:@//192.168.1.1:1521/orcl

thin:小型驱动,驱动方式

localhost :本机ip地址 127.0.0.1

SID:数据库的SID

SERVICENAME:数据库的SID

  • MySQL URL
jdbc:mysql://localhost:3306/数据库名称

技巧:

通过一种jdbc的url连接在IDEA成功连接数据库后,点击切换连接类型可将url转换为其它类型的jdbc url连接;

二、驱动类型

在ORACLE中有三种类型的JDBC驱动,都使用相同的 syntax, API, and Oracle extensions,以使JAVA代码在robust clients、Web-based Java applets, and Java stored procedures之间保持轻便灵活:

三种类型如下:

1.JDBC OCI: 此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件
2.JDBC Thin: 这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件。
3.JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用

三、数据库连接代码片段

import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
import java.util.Properties;
/**
 * JDBC的六大步骤
 * JAVA连接Oracle的三种方式
 */

public static void main(String[] args) {
    Connection connect = null;
    Statement statement = null;
    ResultSet resultSet = null;

    try {
        //第一步:注册驱动
        //第一种方式:类加载(常用)
        //Class.forName("oracle.jdbc.OracleDriver");
        //第二种方式:利用Driver对象
        Driver driver = new OracleDriver();
        DriverManager.deregisterDriver(driver);


        //第二步:获取连接
        //第一种方式:利用DriverManager(常用)
        //connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "你的oracle数据库用户名", "用户名密码");
        //第二种方式:直接使用Driver
        Properties pro = new Properties();
        pro.put("user", "你的oracle数据库用户名");
        pro.put("password", "用户名密码");
        connect = driver.connect("jdbc:oracle:thin:@localhost:1521:XE", pro);
        
        //测试connect正确与否
        System.out.println(connect);  


        //第三步:获取执行sql语句对象
        //第一种方式:statement
        //statement = connect.createStatement();
        //第二种方式:PreStatement
        PreparedStatement preState = connect.prepareStatement("select  * from tb1_dept where id = ?");


        //第四步:执行sql语句
        //第一种方式:
        //resultSet = statement.executeQuery("select  * from tb1_dept");
        //第二种方式:
        //1是指sql语句中第一个?,2是指第一个?的values值
        preState.setInt(1, 2);
        //执行查询语句
        //resultSet = preState.executeQuery();        
        //执行的任何查询语句,如果有结果集,则返回true,没有的话返回false,注意如果是插入一条数据的话,虽然是没有结果集,返回false,但是却能成功的插入一条数据
        boolean execute = preState.execute();
        System.out.println(execute);

        //第五步:处理结果集
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String city = resultSet.getString("city");
            //打印输出结果集
            System.out.println( id + " " + name + " " + city );  
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        //第六步:最后无论如何要关闭资源
        try {
            if (resultSet!=null) resultSet.close();
            if (statement!=null) statement.close();
            if (connect!=null) connect.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

四、springboot使用druid连接池连接Oracle数据库的简单配置

#阿里连接池配置
#spring.datasource.druid.driver-class-name=oracle.jdbc.driver.OracleDriver  #可配可不配,阿里的数据库连接池会通过url自动搜寻
spring.datasource.druid.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.druid.username=scott
spring.datasource.druid.password=tiger
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-wait=10
#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。
#在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
#spring.datasource.druid.pool-prepared-statements=true
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
#spring.datasource.druid.time-between-eviction-runs-millis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
#spring.datasource.druid.min-evictable-idle-time-millis=300000
#配置扩展插件:监控统计用的filter:stat  日志用的filter:log4j  防御sql注入的filter:wall
#spring.datasource.druid.filters=stat,wall
#spring.datasource.druid.filter.stat.log-slow-sql=true
#spring.datasource.druid.filter.stat.slow-sql-millis=2000


#自定义配置端口号
server.port=8889
#配置项目访问时上下文路径(项目名称)
#server.servlet.context-path=/sbm

#mybatis相关的配置

#实体别名配置 配置上后,以后在mapper文件中的resultType中原来配置的com.guangming.springboot.entity.Dept就可以直接写成dept
mybatis.type-aliases-package=com.guangming.springboot.entity
#mybatis扫描mapper文件的配置
mybatis.mapper-locations=classpath:mapper/*.xml

#静态资源目录配置
spring.resources.static-locations=classpath:/templates/,classpath:/static/,classpath:/resources/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
原文地址:https://www.cnblogs.com/hhddd-1024/p/15325657.html