JDBC连接Oracle数据库测试

简介: JDBC连接Oracle数据库测试 package date20180727.dao; import java.sql.Connection; import java.sql.DriverManager; import java.

JDBC连接Oracle数据库测试

package date20180727.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BaseDao {
    // 创建4个常量(数据库连接地址,数据库驱动类地址,数据库登录权限名,登录密码)
    private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
    private static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    private static final String UNAME = "scott";
    private static final String UPWD = "123";

    // 使用静态块加载数据库的驱动
    static {
        try {
            Class.forName(DRIVER);
            System.out.println("连接成功");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败");
        }
    }
    // 声明三个核心接口对象(Connection,PreparedStatment,ResultSet)
    private Connection conn = null;// 数据库连接的对象
    private PreparedStatement pstmt = null;// SQL命令预处理并执行操作的对象
    protected ResultSet res = null;// 查询后返回的结果集对象
    // 编写创建数据库连接对象的方法(DriverManager)

    public void getConn() {
        try {
            conn = DriverManager.getConnection(URL, UNAME, UPWD);
        
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    // 编写关闭数据库释放资源的方法
    protected void colseAll() {
        if (null != res) {
            try {
                res.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (null != pstmt) {
            try {
                pstmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (null != conn) {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    // 编写数据库的查询方法
    protected ResultSet excuteSelect(String sql, Object[] params) {
        // 调用数据库连接对象的方法
        this.getConn();
        // 创建预处理对象
        try {
            pstmt = conn.prepareStatement(sql);
            // 通过for循环对参数进行预处理
            if (null != params) {
                for (int i = 0; i < params.length; i++) {
                    pstmt.setObject(i+1, params[i]);
                }
            }
            // 操作查询并返回结果集
            res = pstmt.executeQuery();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return res;
    }
    // 编写数据库的增删改的方法
    protected int excuteEdit(String sql,Object[] params){
        int count = 0;
        //调用数据库连接对象的方法
        this.getConn();
        try {
            //创建SQL命令预处理执行操作的对象
            pstmt = conn.prepareStatement(sql);
            //对参数进行预处理
            for (int i = 0; i < params.length; i++) {
                pstmt.setObject(i+1, params[i]);
            }
            //接收操作执行返回的行数
            count = pstmt.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            this.colseAll();
        }
        return count;
    }
    
}

//测试代码

package date20180727.test;

import date20180727.dao.BaseDao;

public class Test {
    public static void main(String[] args) {
    BaseDao basedao=new BaseDao();
    basedao.getConn();
}
}

添加jar包  ojdbc5.jar  右键build path 然后运行

结果:连接成功

原文地址https://blog.csdn.net/yuan2yue/article/details/81239217

相关文章
|
10月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
803 2
|
11月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
495 13
|
11月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1880 11
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
1210 0
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
2749 28
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
830 0
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
921 14
|
11月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
638 158