• 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/
    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
  • 相关阅读:
    Educational Codeforces Round 51 (Rated for Div. 2)
    Kruskal重构树入门
    编译原理词法分析
    java.lang.String内部结构的变化
    android 世界各国英文简写代码 资源文件
    openCV python 安装
    解读30个提高Web程序执行效率的好经验
    从认知盈余说起,也谈分享精神
    STL set multiset map multimap unordered_set unordered_map example
    [置顶] 【Git入门之一】Git是神马?
  • 原文地址:https://www.cnblogs.com/hhddd-1024/p/15325657.html
Copyright © 2020-2023  润新知