web-dev-qa-db-ja.com

PythonをH2に接続する

Python2.7からH2(h2-1.4.193.jar-最新)に接続しようとしています

H2(実行中で利用可能):_Java -Dh2.bindAddress=127.0.0.1 -cp "E:\Dir\h2-1.4.193.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Server -tcpPort 15081 -baseDir E:\Dir\db_

python私はjaydebeapiを使用しています:

_import jaydebeapi

conn = jaydebeapi.connect('org.h2.Driver', ['jdbc:h2:tcp://localhost:15081/db/test', 'sa', ''], 'E:\Path\to\h2-1.4.193.jar')
curs = conn.cursor()
curs.execute('create table PERSON ("PERSON_ID" INTEGER not null, "NAME" VARCHAR not null, primary key ("PERSON_ID"))')
curs.execute("insert into PERSON values (1, 'John')")
curs.execute("select * from PERSON")
data = curs.fetchall()
print(data)
_

その結果、エラーが発生するたびに:Process finished with exit code -1073741819 (0xC0000005)このケースについて何かアイデアはありますか?または、jaydebeapiの代わりに使用できるものが他にあるでしょうか?

7
IgorZ

私自身の質問に答える:まず第一に、私はjaydebeapiを通して何もできませんでした。 H2がPostgreSQLネットワークプロトコルをサポートしていることを読みました。次のステップは、h2とpythonをpgsqlに転送することでした:

H2 pg:

Java -Dh2.bindAddress=127.0.0.1 -cp h2.jar;postgresql-9.4.1212.jre6.jar org.h2.tools.Server -baseDir E:\Dir\h2\db

TCP server running at tcp://localhost:9092 (only local connections)
PG server running at pg://localhost:5435 (only local connections)
Web Console server running at http://localhost:8082 (only local connections)

postgresql.jarは、Webコンソールから接続を試みるために含まれていました。

Python:jaydebeapiの代わりにpsycopg2

import psycopg2

conn = psycopg2.connect("dbname=h2pg user=sa password='sa' Host=localhost port=5435")
cur = conn.cursor()
cur.execute('create table PERSON ("PERSON_ID" INTEGER not null, "NAME" VARCHAR not null, primary key ("PERSON_ID"))')

その結果、現在は機能しています。接続が確立され、テーブルが作成されました。

Webコンソールの設定:

Generic PostgreSQL
org.postgresql.Driver
jdbc:postgresql://localhost:5435/h2pg
name: sa, pass: sa

Webコンソールは接続しましたが、テーブルリストが表示されず、代わりに多くのエラーが表示されました:"CURRENT_SCHEMAS" is not found etc...。 PG admin4も接続できませんでした。 SQuirrelが救いの手を差し伸べます-このデータベースに接続されていて、すべてが正常に機能しています。

6
IgorZ

おそらく1。5年後の更新には少し遅れますが、現在のバージョンはpostgresドライバーを使用せずにH2と正常に接続します。

conn = jaydebeapi.connect("org.h2.Driver", "jdbc:h2:~/test", ["sa", ""], "/Users/angelo/websites/GEPR/h2/bin/h2-1.4.197.jar",)

ソース: https://pypi.org/project/JayDeBeApi/#usage

1
Angelo Hulshout