Skip to main content

Library to simplify JDBC and JVM configuration for Informix and MongoDB

Project description

PyPI PyPI - Downloads Build Status License: MIT Último Commit GitHub issues GitHub forks GitHub stars

wbjdbc (v1.1.4)

🌍 Português | 🇺🇸 English


📌 O que é o wbjdbc?

wbjdbc é uma biblioteca Python que simplifica a configuração e o uso do JDBC e da JVM, especialmente para conexões com bancos de dados Informix e MongoDB. A biblioteca gerencia drivers internamente, garantindo inicialização automática da JVM e configuração simplificada das conexões.

🚀 Principais recursos:

  • Inicialização automática da JVM com detecção de JAVA_HOME.
  • Suporte para múltiplos drivers JDBC:
    • Informix JDBC Driver (jdbc-4.50.10.1.jar)
    • MongoDB BSON Driver (bson-3.8.0.jar)
  • Gerenciamento interno de dependências, incluindo suporte para JPype1.
  • Modo Debug para facilitar troubleshooting.
  • Método execute_query() retornando lista de dicionários.
  • Compatível com Python 3.8+.

📥 Instalação

Para instalar a biblioteca via PyPI, execute:

pip install wbjdbc

🛠️ Uso

Inicializando a JVM

A JVM pode ser inicializada automaticamente pelo wbjdbc, mas você também pode inicializá-la manualmente:

from wbjdbc import start_jvm

start_jvm()

Isso garantirá que a JVM esteja disponível antes de realizar conexões via JDBC.


📡 Conectando-se ao Informix

Aqui está um exemplo de como usar o wbjdbc para se conectar a um banco de dados Informix:

from wbjdbc import connect_to_db

# Parâmetros de conexão
conn = connect_to_db(
    db_type="informix-sqli",
    host="meu-servidor",
    database="minha_base",
    user="meu_usuario",
    password="minha_senha",
    port=1526,
    server="meu_informix_server"
)

# Criando cursor e executando uma consulta
cursor = conn.cursor()
cursor.execute("SELECT * FROM minha_tabela")
resultados = cursor.fetchall()

# Exibindo resultados
for linha in resultados:
    print(linha)

# Fechando conexão
cursor.close()
conn.close()

⚙️ Consulta Simplificada com execute_query() (para uso com wborm)

A nova versão do wbjdbc oferece um método auxiliar para retornar uma lista de dicionários com nomes de colunas — ideal para integração com wborm:

from wbjdbc import connect_to_db

conn = connect_to_db(
    db_type="informix-sqli",
    host="meu-servidor",
    database="minha_base",
    user="meu_usuario",
    password="minha_senha",
    port=1526,
    server="meu_informix_server"
)

resultados = conn.execute_query("SELECT * FROM minha_tabela")

for row in resultados:
    print(row)  # {'id': 1, 'nome': 'Produto A', 'preco': 25.99}

🔁 O execute_query() retorna uma lista de dicionários com os nomes das colunas como chaves.


📋 Exemplo de saída:

(1, 'Produto A', 25.99)
(2, 'Produto B', 19.50)
(3, 'Produto C', 32.75)

Caso a tabela tenha colunas id, nome e preco, o resultado da query será uma lista de tuplas.


🛠️ Configuração Avançada

🔍 Definir um caminho específico para o Java

Caso o JAVA_HOME não esteja corretamente configurado, você pode definir um caminho específico para o Java:

start_jvm(java_home="/caminho/para/o/java")

📦 Adicionar JARs adicionais

Se precisar de drivers JDBC extras, basta adicionar os arquivos .jar na inicialização:

start_jvm(extra_jars=["/caminho/para/outro-driver.jar"])

🐛 Ativando o modo Debug

Para facilitar a identificação de problemas, o wbjdbc oferece um modo Debug que imprime informações úteis durante a execução.

🔎 Ativando Debug na inicialização da JVM:

start_jvm(debug=1)

🔎 Ativando Debug na conexão ao banco:

conn = connect_to_db(
    db_type="informix-sqli",
    host="meu-servidor",
    database="minha_base",
    user="meu_usuario",
    password="minha_senha",
    port=1526,
    server="meu_informix_server",
    debug=1
)

Com isso, logs detalhados sobre a configuração do ambiente, os JARs carregados e a conexão serão exibidos no console.


🤝 Contribuição

Se deseja contribuir com melhorias para o projeto, envie um pull request no repositório oficial.


📜 Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.


📌 wbjdbc (v1.1.4) - English Version

📌 What is wbjdbc?

wbjdbc is a Python library that simplifies JDBC and JVM configuration, especially for Informix and MongoDB databases. The library manages drivers internally, ensuring automatic JVM initialization and easy connection setup.

🚀 Main Features:

  • Automatic JVM initialization with JAVA_HOME detection.
  • Support for multiple JDBC drivers:
    • Informix JDBC Driver (jdbc-4.50.10.1.jar)
    • MongoDB BSON Driver (bson-3.8.0.jar)
  • Internal dependency management, including JPype1 support.
  • New: execute_query() for dictionary-based results
  • Debug Mode to help with troubleshooting.
  • Compatible with Python 3.8+.

📥 Installation

To install via PyPI, run:

pip install wbjdbc

🛠️ Usage

Starting the JVM

from wbjdbc import start_jvm

start_jvm()

📡 Connecting to Informix

from wbjdbc import connect_to_db

conn = connect_to_db(
    db_type="informix-sqli",
    host="my-server",
    database="my_database",
    user="my_user",
    password="my_password",
    port=1526,
    server="my_informix_server"
)

cursor = conn.cursor()
cursor.execute("SELECT * FROM my_table")
results = cursor.fetchall()
for row in results:
    print(row)

cursor.close()
conn.close()

⚙️ Simplified Query with execute_query()

New in version 1.1.4, you can run a query and receive the output as a list of dictionaries — perfect for tools like wborm:

results = conn.execute_query("SELECT * FROM my_table")
for row in results:
    print(row)  # {'id': 1, 'name': 'Product A', 'price': 25.99}

🔁 The execute_query() method returns rows with named fields as keys.


📋 Example Output:

(1, 'Product A', 25.99)
(2, 'Product B', 19.50)
(3, 'Product C', 32.75)

🛠️ Advanced Configuration

🔍 Set a specific Java path

start_jvm(java_home="/path/to/java")

📦 Add custom JDBC JARs

start_jvm(extra_jars=["/path/to/driver.jar"])

🐛 Debug Mode

start_jvm(debug=1)

Or during connection:

connect_to_db(..., debug=1)

🤝 Contribute

Pull requests are welcome via the official GitHub repository.


📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

Made by a Brazilian Developer 🇧🇷

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wbjdbc-1.1.4.tar.gz (28.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wbjdbc-1.1.4-py3-none-any.whl (29.2 MB view details)

Uploaded Python 3

File details

Details for the file wbjdbc-1.1.4.tar.gz.

File metadata

  • Download URL: wbjdbc-1.1.4.tar.gz
  • Upload date:
  • Size: 28.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for wbjdbc-1.1.4.tar.gz
Algorithm Hash digest
SHA256 990cbda51fc655eced113cb49e4b05334c1652d7c1fb77d132303ca1b8f9ed02
MD5 b24abd8db53a40fac1dcbf6e9fce8fe5
BLAKE2b-256 96ef22e6765d0702c44261008d9fdc5fb295113a8effddb8b905f03a0ed5d7fe

See more details on using hashes here.

File details

Details for the file wbjdbc-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: wbjdbc-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 29.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for wbjdbc-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 06baaf483a82855460cb29bebe657f782cecff5dfb5aabd7078aa876422d78c4
MD5 6b66474ebf2783d2d77a45506aabee0f
BLAKE2b-256 9fc91bf627df35b81672336fea5384906974ff267cf1046e5ee400249bbea741

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page