开发者社区> 龙神之怒> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java连接oracle

简介: 首先新建db.properties 在里面写连接数据库所需的用户名密码等 例如我写的这个文件: # db params driver=oracle.
+关注继续查看

首先新建db.properties
在里面写连接数据库所需的用户名密码等
例如我写的这个文件:

# db params
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
user=system
pwd=root
# dbcp params
initSize=1
maxSize=2

接下来写一个DBUtil.java类来写连接数据库的代码

package db.util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

public class DBUtil {
    // dbcp连接池
    private static BasicDataSource bds;

    // 连接池只需要实例化一次
    // 连接池需要的参数只需要读取一次
    static {
    Properties p = new Properties();
    try {
        p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
        // 1、连接池必需要4个连接参数
        String driver = p.getProperty("driver");
        String url = p.getProperty("url");
        String user = p.getProperty("user");
        String pwd = p.getProperty("pwd");
        // 2、连接池自身也有一些参数(有默认值)
        String initSize = p.getProperty("initSize");
        String maxSize = p.getProperty("maxSize");
        // 3、创建连接池,并设置这些参数
        bds = new BasicDataSource();
        // 连接池会自动加载驱动,所以这里不必再Class.forName()
        bds.setDriverClassName(driver);
        bds.setUrl(url);
        bds.setUsername(user);
        bds.setPassword(pwd);
        bds.setInitialSize(Integer.parseInt(initSize)); // 最小连接数
        bds.setMaxActive(Integer.parseInt(maxSize)); // 最大连接数

    } catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException("加载资源文件失败", e);
    } finally {

    }

    }

    public static Connection getConnection() throws SQLException {
    return bds.getConnection();

    }

    /**
     * 使用连接池创建出来的连接,其close()方法并不是真的关闭连接,而是将此连接归还给池,并且会清空连接中的一切数据,状态置为空闲态。
     * 
     * @param con
     */
    public static void close(Connection con) {
    if (con != null) {
        try {
        con.close();
        } catch (SQLException e) {
        e.printStackTrace();
        throw new RuntimeException("关闭连接失败", e);
        }
    }
    }
}

最后来写测试类

@Test
    public void test() {
    Connection con = null;
    try {
        con = DBUtil.getConnection();
        System.out.println(con);

    } catch (SQLException e) {
        e.printStackTrace();
        throw new RuntimeException();
    } finally {
        DBUtil.close(con);
    }
  }

这样就连接好oracle了
一般情况我们对数据库操纵(增删改)都把方法写在一个类中这样便于以后的管理。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java 连接oracle数据库
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class oracleTest {public static Connection testOracle(){Connec
1089 0
面试官:给我手写一个哈夫曼编码(使用java语言实现)
哈弗曼树往往都会根据哈夫曼编码结合着来说,因此这篇文章,主要结合着面试问题来说明。
91 0
【JDK源码】Java中LinkedList的实现
LinkedList 底层数据结构是一个双向链表……
18 0
Java注解(Annotation)的基本原理以及实现自定义注解
在我们使用springboot的时候我们知道因为注解的存在,使得我们的开发变得格外的方便、快捷。之前的文章Spring常用注解大全,值得你的收藏!!!对于spring中各类注解也进行过介绍。然而注解也并不是因为spring框架的兴起才出现的,而是很早就已经在java中被使用。
145 0
Java 使用 JavaMailSenderImpl 实现发送 QQ 邮件
Java 使用 JavaMailSenderImpl 实现发送 QQ 邮件
57 0
Java实现图的深度优先遍历(DFS)
Java实现图的深度优先遍历(DFS)
109 0
Java——Demo使用GUI并连接数据库实现购买火车票<MySQL>
Java——Demo使用GUI并连接数据库实现购买火车票<MySQL>
75 0
Java使用多线程和GUI实现购买火车票<集合>
Java使用多线程和GUI实现购买火车票<集合>
87 0
+关注
龙神之怒
让我们一起努力奋斗吧
文章
问答
文章排行榜
最热
最新
相关电子书
更多
ORACLE 10g 数据库体系结构图
立即下载
Oracle 至PostgreSQL案例分享
立即下载
MySQL Java开发实战
立即下载