java连接orcale数据库示例分享

 更新时间:2014年02月25日 09:09:02   作者:  
这篇文章主要介绍了java连接orcale数据库示例,需要的朋友可以参考下

database.properties

复制代码 代码如下:

jdbc.driver_class=oracle.jdbc.driver.OracleDriver
jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.connection.username=scott
jdbc.connection.password=tiger

ConfigManager.java

复制代码 代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

//读取配置文件(属性文件)的工具类
public class ConfigManager {
 private static ConfigManager configManager;
 // properties.load(inputStream);读取属性文件
 private static Properties properties;

 // 在构造工具类时,进行配置文件的读取
 private ConfigManager() {
  String configFile = "database.properties";
  properties = new Properties();
  InputStream is = ConfigManager.class.getClassLoader()
    .getResourceAsStream(configFile);
  try {
   // 读取配置文件
   properties.load(is);
   is.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 // 通过单例模式设置实例化个数
 public static ConfigManager getInstance() {
  if (configManager == null) {
   configManager = new ConfigManager();
  }
  return configManager;
 }

 // 通过key获取对应的value
 public String getString(String key) {
  return properties.getProperty(key);
 }
}

BaseDao.java

复制代码 代码如下:

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

import com.book.util.ConfigManager;

//基类:数据库操作通用类
public class BaseDao {
 protected Connection conn;
 protected PreparedStatement ps;
 protected Statement stmt;
 protected ResultSet rs;

 // 获取数据库连接
 public boolean getConnection() {
  // // 读取配置信息
  String driver = ConfigManager.getInstance().getString(
    "jdbc.driver_class");
  String url = ConfigManager.getInstance().getString(
    "jdbc.connection.url");
  String username = ConfigManager.getInstance().getString(
    "jdbc.connection.username");
  String password = ConfigManager.getInstance().getString(
    "jdbc.connection.password");
  // 加载JDBC驱动
  try {
   Class.forName(driver);
   // 与数据库建立连接
   conn = DriverManager.getConnection(url, username, password);
  } catch (ClassNotFoundException e) {
   return false;
  } catch (SQLException e) {
   return false;
  }
  return true;
 }

 // 增删改的通用方法
 public int executeUpdate(String sql, Object[] params) {
  int updateRows = 0;
  getConnection();
  try {
   ps = conn.prepareStatement(sql);
   // 填充占位符
   for (int i = 0; i < params.length; i++) {
    ps.setObject(i + 1, params[i]);
    System.out.println(i + 1 + "---" + params[i]);
   }
   System.out.println(sql);
   updateRows = ps.executeUpdate();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return updateRows;

 }

 // 查询
 public ResultSet executeSQL(String sql, Object[] params) {
  getConnection();
  try {
   ps = conn.prepareStatement(sql);

   // 填充占位符
   for (int i = 0; i < params.length; i++) {
    ps.setObject(i + 1, params[i]);
   }
   rs = ps.executeQuery();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return rs;

 }

 // 关闭资源
 public void closeAll(){
  try {
   if(rs!=null){
    rs.close();
   }
   if(stmt!=null){
    stmt.close();
   }
   if(ps!=null){
    ps.close();
   }
   if(conn!=null){
    conn.close();
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}

相关文章

  • MyBatis-Plus自动填充字段的详细教程

    MyBatis-Plus自动填充字段的详细教程

    今天编写一个详细的教程来介绍如何在 Spring Boot 项目中使用 MyBatis-Plus 实现自动填充时间字段(如创建时间 createTime 和更新时间 updateTime),可以分为以下几个部分,这个教程将涵盖从项目配置到自动填充的完整过程,需要的朋友可以参考下
    2024-08-08
  • Java使用redisson实现分布式锁的示例详解

    Java使用redisson实现分布式锁的示例详解

    这篇文章主要为大家详细介绍了在Java项目中使用redisson实现分布式锁,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-07-07
  • JAVA中实现原生的 socket 通信机制原理

    JAVA中实现原生的 socket 通信机制原理

    本篇文章主要介绍了JAVA中实现原生的 socket 通信机制原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 通过Java实现自己动手写ls命令

    通过Java实现自己动手写ls命令

    在前面的文章中,我们仔细的介绍了关于ls命令的使用和输出结果,在本篇文章当中我们用Java代码自己实现ls命令,更加深入的了解ls命令
    2022-10-10
  • SpringBoot接口加密与解密的实现

    SpringBoot接口加密与解密的实现

    这篇文章主要介绍了SpringBoot接口加密与解密的实现
    2023-10-10
  • Scala数据库连接池的简单实现

    Scala数据库连接池的简单实现

    本文主要介绍了Scala数据库连接池的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 一篇文章帮你搞懂什么是java的进程和线程

    一篇文章帮你搞懂什么是java的进程和线程

    这篇文章主要介绍了java 线程详解及线程与进程的区别的相关资料,网上关于java 线程的资料很多,对于进程的资料很是,这里就整理下,需要的朋友可以参考下
    2021-08-08
  • 详解Java字符型常量和字符串常量的区别

    详解Java字符型常量和字符串常量的区别

    Java 中的字符型常量和字符串常量是两种不同的数据类型,本文将给大家详细介绍一下Java字符型常量和字符串常量的区别,文中通过代码讲解的非常详细,需要的朋友可以参考下
    2023-10-10
  • SpringBoot实现elasticsearch 查询操作(RestHighLevelClient 的案例实战)

    SpringBoot实现elasticsearch 查询操作(RestHighLevelClient 

    这篇文章主要给大家介绍了SpringBoot如何实现elasticsearch 查询操作,文中有详细的代码示例和操作流程,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Java自动生成趋势比对数据的方法分享

    Java自动生成趋势比对数据的方法分享

    这篇文章主要和大家分享了一种Java自动生成趋势比对数据的方法设计及实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04

最新评论