python

PythonからJDBCを使ってデータベースへ接続

jaydebeapiパッケージ(ライブラリ)を利用すればPythonからもJDBCを使ってデータベースへ接続する事ができます。jaydebeapiは内部でJPype1ライブラリを利用しているので、JPype1パッケージも事前にインストールしておく必要があります。また、JAVAを使うので実行の際にはJAVA_HOME環境変数へ設定しておく必要もあります。

事前確認
-- JAVA_HOMEの確認
--
python_test >> $env:JAVA_HOME
C:\Program Files\Java\jdk-17
python_test >> 
-- 現在インストールされているパッケージの確認
--
python_test >> pip list
Package                   Version
------------------------- --------
altgraph                  0.17.4
JayDeBeApi                1.2.3
JPype1                    1.5.0
packaging                 24.1
pefile                    2023.2.7
pip                       24.1.2
pyinstaller               6.9.0
pyinstaller-hooks-contrib 2024.7
pywin32-ctypes            0.2.2
setuptools                65.5.0
python_test >> 
ソースファイル
import jaydebeapi
import configparser

# configparserオブジェクトを作成
config = configparser.ConfigParser()

# UTF-8エンコーディングでconfig.iniファイルを読み込む
with open('connect_config.ini', 'r', encoding='utf-8') as file:
    config.read_file(file)

# データベース接続情報を取得
db_config = config['database']
url = db_config['url']
driver = db_config['driver']
username = db_config['username']
password = db_config['password']
classpath = db_config['classpath']

# SQLクエリを取得
queries = config['queries']
select_fruit_query = queries['select_fruit']

# データベース接続
conn = jaydebeapi.connect(driver, url, [username, password], classpath)

# カーソル作成
curs = conn.cursor()

# クエリ実行
curs.execute(select_fruit_query)

# 結果を取得
results = curs.fetchall()

# 結果を表示
for row in results:
    print(row)

# カーソルと接続を閉じる
curs.close()
conn.close()
connect_config.iniファイル
Windows環境の例
[database]
# データベースへの接続URL
url         = jdbc:postgresql://vm022:5432/myposdb

# JDBCドライバのクラス名
driver      = org.postgresql.Driver

# データベースユーザー名
username    = sooni

# データベースパスワード
password    = soopass

# JDBCドライバのパス
classpath   = D:/python_test/postgresql-42.7.3.jar


[queries]
select_fruit = SELECT * FROM fruit
Linux環境の例
[database]
# データベースへの接続URL
url         = jdbc:postgresql://vm022:5432/myposdb

# JDBCドライバのクラス名
driver      = org.postgresql.Driver

# データベースユーザー名
username    = sooni

# データベースパスワード
password    = soopass

# JDBCドライバのパス
classpath   = /root/lib/postgresql-42.5.4.jar

[queries]
select_fruit = SELECT * FROM fruit
スポンサーリンク
タイトルとURLをコピーしました