最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java連接orcale數(shù)據(jù)庫示例分享

 更新時間:2014年02月25日 09:09:02   作者:  
這篇文章主要介紹了java連接orcale數(shù)據(jù)庫示例,需要的朋友可以參考下

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;

 // 在構(gòu)造工具類時,進行配置文件的讀取
 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();
  }
 }

 // 通過單例模式設置實例化個數(shù)
 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;

//基類:數(shù)據(jù)庫操作通用類
public class BaseDao {
 protected Connection conn;
 protected PreparedStatement ps;
 protected Statement stmt;
 protected ResultSet rs;

 // 獲取數(shù)據(jù)庫連接
 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驅(qū)動
  try {
   Class.forName(driver);
   // 與數(shù)據(jù)庫建立連接
   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?實現(xiàn)自動填充時間字段(如創(chuàng)建時間?createTime?和更新時間?updateTime),可以分為以下幾個部分,這個教程將涵蓋從項目配置到自動填充的完整過程,需要的朋友可以參考下
    2024-08-08
  • Java使用redisson實現(xiàn)分布式鎖的示例詳解

    Java使用redisson實現(xiàn)分布式鎖的示例詳解

    這篇文章主要為大家詳細介紹了在Java項目中使用redisson實現(xiàn)分布式鎖,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-07-07
  • JAVA中實現(xiàn)原生的 socket 通信機制原理

    JAVA中實現(xiàn)原生的 socket 通信機制原理

    本篇文章主要介紹了JAVA中實現(xiàn)原生的 socket 通信機制原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 通過Java實現(xiàn)自己動手寫ls命令

    通過Java實現(xiàn)自己動手寫ls命令

    在前面的文章中,我們仔細的介紹了關于ls命令的使用和輸出結(jié)果,在本篇文章當中我們用Java代碼自己實現(xiàn)ls命令,更加深入的了解ls命令
    2022-10-10
  • SpringBoot接口加密與解密的實現(xiàn)

    SpringBoot接口加密與解密的實現(xiàn)

    這篇文章主要介紹了SpringBoot接口加密與解密的實現(xiàn)
    2023-10-10
  • Scala數(shù)據(jù)庫連接池的簡單實現(xiàn)

    Scala數(shù)據(jù)庫連接池的簡單實現(xiàn)

    本文主要介紹了Scala數(shù)據(jù)庫連接池的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 一篇文章幫你搞懂什么是java的進程和線程

    一篇文章幫你搞懂什么是java的進程和線程

    這篇文章主要介紹了java 線程詳解及線程與進程的區(qū)別的相關資料,網(wǎng)上關于java 線程的資料很多,對于進程的資料很是,這里就整理下,需要的朋友可以參考下
    2021-08-08
  • 詳解Java字符型常量和字符串常量的區(qū)別

    詳解Java字符型常量和字符串常量的區(qū)別

    Java 中的字符型常量和字符串常量是兩種不同的數(shù)據(jù)類型,本文將給大家詳細介紹一下Java字符型常量和字符串常量的區(qū)別,文中通過代碼講解的非常詳細,需要的朋友可以參考下
    2023-10-10
  • SpringBoot實現(xiàn)elasticsearch 查詢操作(RestHighLevelClient 的案例實戰(zhàn))

    SpringBoot實現(xiàn)elasticsearch 查詢操作(RestHighLevelClient 

    這篇文章主要給大家介紹了SpringBoot如何實現(xiàn)elasticsearch 查詢操作,文中有詳細的代碼示例和操作流程,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • Java自動生成趨勢比對數(shù)據(jù)的方法分享

    Java自動生成趨勢比對數(shù)據(jù)的方法分享

    這篇文章主要和大家分享了一種Java自動生成趨勢比對數(shù)據(jù)的方法設計及實現(xiàn),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04

最新評論

肇州县| 杭锦旗| 安顺市| 宝兴县| 龙南县| 原阳县| 华坪县| 彰武县| 齐齐哈尔市| 固镇县| 资中县| 丽江市| 城步| 旬邑县| 大同县| 宜黄县| 临沂市| 道孚县| 德庆县| 龙游县| 宜阳县| 托克逊县| 阿合奇县| 东乡族自治县| 内乡县| 长丰县| 新营市| 临安市| 同德县| 米脂县| 子洲县| 英吉沙县| 吴桥县| 芒康县| 赣州市| 荆州市| 元江| 金沙县| 盈江县| 江都市| 德庆县|