Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rawrafox/rust-jdbc
Rust-JDBC bindings
https://github.com/rawrafox/rust-jdbc
Last synced: 12 days ago
JSON representation
Rust-JDBC bindings
- Host: GitHub
- URL: https://github.com/rawrafox/rust-jdbc
- Owner: rawrafox
- License: apache-2.0
- Created: 2017-07-12T18:17:27.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-01-23T18:16:26.000Z (almost 5 years ago)
- Last Synced: 2024-08-05T19:25:13.361Z (3 months ago)
- Language: Rust
- Size: 36.1 KB
- Stars: 17
- Watchers: 2
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-rust-cn - rawrasaur/rust-jdbc - ci.org/rawrasaur/rust-jdbc.svg?branch=master">](https://travis-ci.org/rawrasaur/rust-jdbc) (Development tools / FFI)
README
# jdbc #
A Rust library that allows you to use JDBC and JDBC drivers.
## Usage
First, add the following to your `Cargo.toml`:
```toml
[dependencies]
jdbc = "0.1"
```Next, add this to your crate root:
```rust
extern crate jdbc;
```Then you can in your main function do something like this:
```rust
let jvm_options = ["-Djava.class.path=./jars/postgresql-42.1.1.jar", "-Xcheck:jni"];
let _ = unsafe { jvm::JVM::from_options(&jvm_options) };let url = "jdbc:postgresql://localhost/test";
let connection = DriverManager::get_connection(url).unwrap();
let statement = connection.create_statement().unwrap();
let result_set = statement.execute_query("SELECT * FROM customers").unwrap();
let metadata = result_set.get_meta_data().unwrap();
let columns = metadata.get_column_count().unwrap();while result_set.next().unwrap() {
print!("row:");
for i in 1 .. columns + 1 {
print!(" {:?}", result_set.get_string(i).unwrap());
}
println!("");
}
```## What is jdbc? ##
The primary purpose of this crate is to allow you to use Java JDBC database
drivers from Rust in a convenient way with a relatively safe interface. It does
this via embedding a JVM in your process so be aware that if you use JNI in some
other way in your app you will need to tell jdbc to play nice.## Platforms ##
I am testing on my Mac, but I would love to setup some CI to get this party
started.## Contributing ##
Patches are welcome, don't forget to add yourself to the Authors list.
## Authors ##
- Aurora <@rawrasaur, [email protected]>