From a6299571a219b466fedca3a75cec9c60a4bd7975 Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 18:03:23 +0000 Subject: [PATCH 1/6] Add files via upload --- ODBCDemo.csproj | 14 ++++++++++++++ program.cs | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 ODBCDemo.csproj create mode 100644 program.cs diff --git a/ODBCDemo.csproj b/ODBCDemo.csproj new file mode 100644 index 0000000..e445c70 --- /dev/null +++ b/ODBCDemo.csproj @@ -0,0 +1,14 @@ + + + + Exe + net9.0 + enable + enable + + + + + + + diff --git a/program.cs b/program.cs new file mode 100644 index 0000000..cbdbb56 --- /dev/null +++ b/program.cs @@ -0,0 +1,42 @@ +using System; +using System.Data.Odbc; + +namespace ODBCDemo +{ + class Program + { + static void Main(string[] args) + { + // TODO: Replace with your actual DSN, username, and password + string connStr = "DSN=sqllu-uda10;UID=openlink;PWD=Odbc@mssql;"; + Console.WriteLine($"Using connection: {connStr}"); + + using (OdbcConnection conn = new OdbcConnection(connStr)) + { + try + { + conn.Open(); + Console.WriteLine("Connected to database via ODBC DSN!"); + + // TODO: Replace with a valid SQL query for your database + string sql = "SELECT TOP 5 * FROM Customers"; + using (OdbcCommand cmd = new OdbcCommand(sql, conn)) + using (OdbcDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + // Example: print first column + Console.WriteLine(reader[0].ToString()); + } + } + + conn.Close(); + } + catch (Exception ex) + { + Console.WriteLine("Error: " + ex.Message); + } + } + } + } +} From f47bfff6e457ce41aefebcdaa1c3cf73e53ba5e4 Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 18:10:04 +0000 Subject: [PATCH 2/6] Update README.md Added Generic .NET ODBC Console Application source files and readme update ... --- README.md | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 207 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c69fd4..e070d19 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Making Data Connectivity Easy -A collection of programs aimed as simplifying and demystifing open standards based data connectivity. +A collection of programs aimed at simplifying and demystifing open standards based data connectivity. ## Java Examples Here's a Java program that interrogates its host operating enviroment (Java Virtual Machine) for currently installed drivers. The drivers discovered can then be tested for basic connectivity. @@ -93,3 +93,209 @@ Version 18.4.0.0.0 ✅ Connection successful! ``` +## Generic .NET ODBC Console Application + +This document describes a minimal, cross-platform .NET console application that connects to any ODBC-accessible database using an ODBC DSN (Data Source Name). + +It is intended to run on any operating system (Windows, macOS, Linux etc) where: + +The .NET SDK or runtime is available +A compatible ODBC driver is installed +A working ODBC DSN has been configured + +--- + +### What + +This project is a **simple .NET console application** that: + +- Uses the `System.Data.Odbc` provider +- Connects to a database via an **ODBC DSN** +- Executes a SQL query +- Prints results to standard output + +It serves as a **template** or **reference implementation** for validating `ODBC`connectivity from `.NET` across platforms. + +--- + +### Why + +This example is useful when you need to: + +- Verify that an `ODBC` driver is correctly installed and configured +- Test database connectivity independently of vendor-specific SDKs +- Create a portable `.NET` database client that works across operating systems +- Use legacy or enterprise databases that expose `ODBC` but not native `.NET` drivers + +Using `ODBC` provides a **vendor-neutral abstraction layer**, allowing the same application code to work with many different databases and operating systems simply by changing the `ODBC DSN` and `SQL query`. + +--- + +### How + +#### 1. Project File (`ODBCDemo.csproj`) + +This project file is intentionally minimal and portable. + +```xml + + + + Exe + net8.0 + enable + enable + + + + + + + +``` + +**Notes** + +* `net8.0` can be replaced with another supported `.NET` version if required +* `System.Data.Odbc` is the only external dependency + +#### 2. Application Code (Program.cs) + +This version uses placeholders so it can be adapted to any database and ODBC DSN. + +``` +using System; +using System.Data.Odbc; + +namespace ODBCDemo +{ + class Program + { + static void Main(string[] args) + { + // TODO: Replace with your actual DSN, username, and password + string connStr = "DSN=;UID=;PWD=;"; + Console.WriteLine($"Using connection: {connStr}"); + + using (OdbcConnection conn = new OdbcConnection(connStr)) + { + try + { + conn.Open(); + Console.WriteLine("Connected to database via ODBC DSN!"); + + // TODO: Replace with a valid SQL query for your database + string sql = "SELECT FROM ."; + using (OdbcCommand cmd = new OdbcCommand(sql, conn)) + using (OdbcDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + // Example: print first column + Console.WriteLine(reader[0].ToString()); + } + } + + conn.Close(); + } + catch (Exception ex) + { + Console.WriteLine("Error: " + ex.Message); + } + } + } + } +} +``` + +**Customization Points** + +* **DSN=** → Name of your configured ODBC DSN +* **UID / PWD** → Database authentication credentials +* **SQL query** → Must be valid for your target database dialect + +#### 3. ODBC DSN Configuration (OS-Independent Concept) + +Although the tools differ by OS, the concept is the same everywhere: + +* Install the appropriate `ODBC` driver for your database +* Create a `ODBC DSN` that references that driver +* Test the `ODBC DSN` using the OS-provided ODBC tools + +**Important considerations:** + +* Driver bitness (32-bit vs 64-bit) must match the .NET runtime +* System ODBC DSNs are recommended for non-interactive applications +* ODBC DSN names are case-sensitive on some platforms + +#### 4. Environment & Runtime Requirements + +* `.NET` SDK or Runtime installed (dotnet --version to verify) +* `ODBC` driver properly installed and licensed if required +* `ODBC DSN` visible to the user or system context running the application + +On non-Windows platforms, ensure: + +* `ODBCINI` and `ODBCINSTINI` environment variables (if applicable) point to valid configuration files +* The driver shared libraries are discoverable by the runtime loader + +#### 5. Build & Run + +From the project directory containing the `ODBCDemo.csproj` and `program.cs` files only, run the following command to build and run the .Net application: + +``` +dotnet clean +dotnet build -f net8.0 +dotnet run -f net8.0 +``` + +**Notes** + +* Environment Variables on macOS** + +``` +export ODBCINI="$HOME/Library/ODBC/odbc.ini" +export ODBCSYSINI="/Library/ODBC" +export DYLD_LIBRARY_PATH="/opt/homebrew/lib" +``` + +For GUI apps: + +``` +launchctl setenv ODBCINI "$HOME/Library/ODBC/odbc.ini" +launchctl setenv ODBCSYSINI "/Library/ODBC" +launchctl setenv DYLD_LIBRARY_PATH "/opt/homebrew/lib" +``` +#### 6. Expected Output (Example) + +``` +Using connection: DSN=;UID=;PWD=; +Connected to database via ODBC DSN! + + + +... +``` + +Actual output will depend on: + +* The SQL query +* The database contents +* The column(s) selected + +#### Summary + +This template demonstrates the simplest possible ODBC-based .NET application: + +* One project file +* One source file +* One DSN +* One SQL query + +By changing only the ODBC DSN and SQL query, the same code can be reused across: + +* Databases +* Vendors +* Operating systems + +It is intended as a foundation, not a framework—ideal for diagnostics, demos, and integration validation. From 841dd8b8770b29194f45e6647bd3075d8433fe51 Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 20:28:13 +0000 Subject: [PATCH 3/6] Update README.md --- README.md | 206 ------------------------------------------------------ 1 file changed, 206 deletions(-) diff --git a/README.md b/README.md index e070d19..8160d6e 100644 --- a/README.md +++ b/README.md @@ -93,209 +93,3 @@ Version 18.4.0.0.0 ✅ Connection successful! ``` -## Generic .NET ODBC Console Application - -This document describes a minimal, cross-platform .NET console application that connects to any ODBC-accessible database using an ODBC DSN (Data Source Name). - -It is intended to run on any operating system (Windows, macOS, Linux etc) where: - -The .NET SDK or runtime is available -A compatible ODBC driver is installed -A working ODBC DSN has been configured - ---- - -### What - -This project is a **simple .NET console application** that: - -- Uses the `System.Data.Odbc` provider -- Connects to a database via an **ODBC DSN** -- Executes a SQL query -- Prints results to standard output - -It serves as a **template** or **reference implementation** for validating `ODBC`connectivity from `.NET` across platforms. - ---- - -### Why - -This example is useful when you need to: - -- Verify that an `ODBC` driver is correctly installed and configured -- Test database connectivity independently of vendor-specific SDKs -- Create a portable `.NET` database client that works across operating systems -- Use legacy or enterprise databases that expose `ODBC` but not native `.NET` drivers - -Using `ODBC` provides a **vendor-neutral abstraction layer**, allowing the same application code to work with many different databases and operating systems simply by changing the `ODBC DSN` and `SQL query`. - ---- - -### How - -#### 1. Project File (`ODBCDemo.csproj`) - -This project file is intentionally minimal and portable. - -```xml - - - - Exe - net8.0 - enable - enable - - - - - - - -``` - -**Notes** - -* `net8.0` can be replaced with another supported `.NET` version if required -* `System.Data.Odbc` is the only external dependency - -#### 2. Application Code (Program.cs) - -This version uses placeholders so it can be adapted to any database and ODBC DSN. - -``` -using System; -using System.Data.Odbc; - -namespace ODBCDemo -{ - class Program - { - static void Main(string[] args) - { - // TODO: Replace with your actual DSN, username, and password - string connStr = "DSN=;UID=;PWD=;"; - Console.WriteLine($"Using connection: {connStr}"); - - using (OdbcConnection conn = new OdbcConnection(connStr)) - { - try - { - conn.Open(); - Console.WriteLine("Connected to database via ODBC DSN!"); - - // TODO: Replace with a valid SQL query for your database - string sql = "SELECT FROM .
"; - using (OdbcCommand cmd = new OdbcCommand(sql, conn)) - using (OdbcDataReader reader = cmd.ExecuteReader()) - { - while (reader.Read()) - { - // Example: print first column - Console.WriteLine(reader[0].ToString()); - } - } - - conn.Close(); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - } - } - } - } -} -``` - -**Customization Points** - -* **DSN=** → Name of your configured ODBC DSN -* **UID / PWD** → Database authentication credentials -* **SQL query** → Must be valid for your target database dialect - -#### 3. ODBC DSN Configuration (OS-Independent Concept) - -Although the tools differ by OS, the concept is the same everywhere: - -* Install the appropriate `ODBC` driver for your database -* Create a `ODBC DSN` that references that driver -* Test the `ODBC DSN` using the OS-provided ODBC tools - -**Important considerations:** - -* Driver bitness (32-bit vs 64-bit) must match the .NET runtime -* System ODBC DSNs are recommended for non-interactive applications -* ODBC DSN names are case-sensitive on some platforms - -#### 4. Environment & Runtime Requirements - -* `.NET` SDK or Runtime installed (dotnet --version to verify) -* `ODBC` driver properly installed and licensed if required -* `ODBC DSN` visible to the user or system context running the application - -On non-Windows platforms, ensure: - -* `ODBCINI` and `ODBCINSTINI` environment variables (if applicable) point to valid configuration files -* The driver shared libraries are discoverable by the runtime loader - -#### 5. Build & Run - -From the project directory containing the `ODBCDemo.csproj` and `program.cs` files only, run the following command to build and run the .Net application: - -``` -dotnet clean -dotnet build -f net8.0 -dotnet run -f net8.0 -``` - -**Notes** - -* Environment Variables on macOS** - -``` -export ODBCINI="$HOME/Library/ODBC/odbc.ini" -export ODBCSYSINI="/Library/ODBC" -export DYLD_LIBRARY_PATH="/opt/homebrew/lib" -``` - -For GUI apps: - -``` -launchctl setenv ODBCINI "$HOME/Library/ODBC/odbc.ini" -launchctl setenv ODBCSYSINI "/Library/ODBC" -launchctl setenv DYLD_LIBRARY_PATH "/opt/homebrew/lib" -``` -#### 6. Expected Output (Example) - -``` -Using connection: DSN=;UID=;PWD=; -Connected to database via ODBC DSN! - - - -... -``` - -Actual output will depend on: - -* The SQL query -* The database contents -* The column(s) selected - -#### Summary - -This template demonstrates the simplest possible ODBC-based .NET application: - -* One project file -* One source file -* One DSN -* One SQL query - -By changing only the ODBC DSN and SQL query, the same code can be reused across: - -* Databases -* Vendors -* Operating systems - -It is intended as a foundation, not a framework—ideal for diagnostics, demos, and integration validation. From 379f8ec1c737dbb17dd83a554e2c849d9565cb8f Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 20:29:50 +0000 Subject: [PATCH 4/6] Create ado-net-readme.md Generic .NET ODBC Console Application readme --- ado-net-readme.md | 206 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 ado-net-readme.md diff --git a/ado-net-readme.md b/ado-net-readme.md new file mode 100644 index 0000000..8ec344c --- /dev/null +++ b/ado-net-readme.md @@ -0,0 +1,206 @@ +## Generic .NET ODBC Console Application + +This document describes a minimal, cross-platform .NET console application that connects to any ODBC-accessible database using an ODBC DSN (Data Source Name). + +It is intended to run on any operating system (Windows, macOS, Linux etc) where: + +The .NET SDK or runtime is available +A compatible ODBC driver is installed +A working ODBC DSN has been configured + +--- + +### What + +This project is a **simple .NET console application** that: + +- Uses the `System.Data.Odbc` provider +- Connects to a database via an **ODBC DSN** +- Executes a SQL query +- Prints results to standard output + +It serves as a **template** or **reference implementation** for validating `ODBC`connectivity from `.NET` across platforms. + +--- + +### Why + +This example is useful when you need to: + +- Verify that an `ODBC` driver is correctly installed and configured +- Test database connectivity independently of vendor-specific SDKs +- Create a portable `.NET` database client that works across operating systems +- Use legacy or enterprise databases that expose `ODBC` but not native `.NET` drivers + +Using `ODBC` provides a **vendor-neutral abstraction layer**, allowing the same application code to work with many different databases and operating systems simply by changing the `ODBC DSN` and `SQL query`. + +--- + +### How + +#### 1. Project File (`ODBCDemo.csproj`) + +This project file is intentionally minimal and portable. + +```xml + + + + Exe + net8.0 + enable + enable + + + + + + + +``` + +**Notes** + +* `net8.0` can be replaced with another supported `.NET` version if required +* `System.Data.Odbc` is the only external dependency + +#### 2. Application Code (Program.cs) + +This version uses placeholders so it can be adapted to any database and ODBC DSN. + +``` +using System; +using System.Data.Odbc; + +namespace ODBCDemo +{ + class Program + { + static void Main(string[] args) + { + // TODO: Replace with your actual DSN, username, and password + string connStr = "DSN=;UID=;PWD=;"; + Console.WriteLine($"Using connection: {connStr}"); + + using (OdbcConnection conn = new OdbcConnection(connStr)) + { + try + { + conn.Open(); + Console.WriteLine("Connected to database via ODBC DSN!"); + + // TODO: Replace with a valid SQL query for your database + string sql = "SELECT FROM .
"; + using (OdbcCommand cmd = new OdbcCommand(sql, conn)) + using (OdbcDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + // Example: print first column + Console.WriteLine(reader[0].ToString()); + } + } + + conn.Close(); + } + catch (Exception ex) + { + Console.WriteLine("Error: " + ex.Message); + } + } + } + } +} +``` + +**Customization Points** + +* **DSN=** → Name of your configured ODBC DSN +* **UID / PWD** → Database authentication credentials +* **SQL query** → Must be valid for your target database dialect + +#### 3. ODBC DSN Configuration (OS-Independent Concept) + +Although the tools differ by OS, the concept is the same everywhere: + +* Install the appropriate `ODBC` driver for your database +* Create a `ODBC DSN` that references that driver +* Test the `ODBC DSN` using the OS-provided ODBC tools + +**Important considerations:** + +* Driver bitness (32-bit vs 64-bit) must match the .NET runtime +* System ODBC DSNs are recommended for non-interactive applications +* ODBC DSN names are case-sensitive on some platforms + +#### 4. Environment & Runtime Requirements + +* `.NET` SDK or Runtime installed (dotnet --version to verify) +* `ODBC` driver properly installed and licensed if required +* `ODBC DSN` visible to the user or system context running the application + +On non-Windows platforms, ensure: + +* `ODBCINI` and `ODBCINSTINI` environment variables (if applicable) point to valid configuration files +* The driver shared libraries are discoverable by the runtime loader + +#### 5. Build & Run + +From the project directory containing the `ODBCDemo.csproj` and `program.cs` files only, run the following command to build and run the .Net application: + +``` +dotnet clean +dotnet build -f net8.0 +dotnet run -f net8.0 +``` + +**Notes** + +* Environment Variables on macOS** + +``` +export ODBCINI="$HOME/Library/ODBC/odbc.ini" +export ODBCSYSINI="/Library/ODBC" +export DYLD_LIBRARY_PATH="/opt/homebrew/lib" +``` + +For GUI apps: + +``` +launchctl setenv ODBCINI "$HOME/Library/ODBC/odbc.ini" +launchctl setenv ODBCSYSINI "/Library/ODBC" +launchctl setenv DYLD_LIBRARY_PATH "/opt/homebrew/lib" +``` +#### 6. Expected Output (Example) + +``` +Using connection: DSN=;UID=;PWD=; +Connected to database via ODBC DSN! + + + +... +``` + +Actual output will depend on: + +* The SQL query +* The database contents +* The column(s) selected + +#### Summary + +This template demonstrates the simplest possible ODBC-based .NET application: + +* One project file +* One source file +* One DSN +* One SQL query + +By changing only the ODBC DSN and SQL query, the same code can be reused across: + +* Databases +* Vendors +* Operating systems + +It is intended as a foundation, not a framework—ideal for diagnostics, demos, and integration validation. From c07421c773ed38912ab050e60a736cdd515ef973 Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 20:32:47 +0000 Subject: [PATCH 5/6] Update README.md --- README.md | 93 ------------------------------------------------------- 1 file changed, 93 deletions(-) diff --git a/README.md b/README.md index 8160d6e..2977d1b 100644 --- a/README.md +++ b/README.md @@ -1,95 +1,2 @@ # Making Data Connectivity Easy A collection of programs aimed at simplifying and demystifing open standards based data connectivity. - -## Java Examples -Here's a Java program that interrogates its host operating enviroment (Java Virtual Machine) for currently installed drivers. The drivers discovered can then be tested for basic connectivity. - -### Why? -Use of our JDBC or ODBC-JDBC bridge drivers depends on an easy to used experience during installation, configuration, and use. - -### How? -1. Determine the location of the JAR files of each of the JDBC drivers of interest. Ideally, place them in a common directory (folder) of your choosing -2. Ensure the CLASSPATH operating system environment variable contains an entry for each of the JAR files of each of the JDBC Drivers of interest. -3. Save the Java source code to a file e.g., `UniversalJDBCTest.java` -4. Compile the .java source code using: ` javac -cp ".:/{JDBC-JAR-FILES-DIRECTORY}/*" UniversalJDBCTest.java` e.g., ` javac -cp ".:/Library/Java/Extensions/*" UniversalJDBCTest.java` -5. Run the compiled program (.class) using: ` java -cp ".:/{JDBC-JAR-FILES-DIRECTORY}/*" UniversalJDBCTest` e.g., ` java -cp ".:/Library/Java/Extensions/*" UniversalJDBCTest` -- if you don't want to depend on $CLASSPATH for picking up JDBC Driver JAR file locations -6. Run the compiled program (.class) using: ` java UniversalJDBCTest` -- if you are depending on $CLASSPATH for picking up JDBC Driver JAR file locations - - -#### Usage Examples - -##### Virtuoso (multi-model DBMS for supporting both SQL and SPARQL queries via JDBC) - -```sh -=== Universal JDBC Connection Test === - -Available JDBC Drivers: - -1) com.informix.jdbc.IfxDriver (v4.2) -2) com.informix.jdbc.InformixDriver (v15.0) -3) virtuoso.jdbc4.Driver (v3.120) -4) org.postgresql.Driver (v42.7) -5) oracle.jdbc.OracleDriver (v23.8) -6) openlink.jdbc4.Driver (v4.56) -7) com.amazonaws.athena.jdbc.AthenaDriver (v1.0) -8) com.mysql.cj.jdbc.Driver (v9.3) -9) com.microsoft.sqlserver.jdbc.SQLServerDriver (v12.10) - -Select a driver by number: 3 - -Selected Driver: virtuoso.jdbc4.Driver - -Enter JDBC URL (e.g., jdbc:oracle:thin:@host:port:sid): jdbc:virtuoso://localhost/charset=UTF-8/ -Enter username: dba -Enter password: - -Connecting... - -=== Connection Metadata === -JDBC Driver Name: OpenLink Virtuoso JDBC pure Java -JDBC Driver Version: 3.120 (for Java 2 platform) -JDBC Spec Version: 3.0 -Database Product Name: OpenLink Virtuoso VDBMS -Database Product Version: 08.03.3332 - -✅ Connection successful! -``` - -##### Oracle - -```sh -=== Universal JDBC Connection Test === - -Available JDBC Drivers: - -1) com.informix.jdbc.IfxDriver (v4.2) -2) com.informix.jdbc.InformixDriver (v15.0) -3) virtuoso.jdbc4.Driver (v3.120) -4) org.postgresql.Driver (v42.7) -5) oracle.jdbc.OracleDriver (v23.8) -6) openlink.jdbc4.Driver (v4.56) -7) com.amazonaws.athena.jdbc.AthenaDriver (v1.0) -8) com.mysql.cj.jdbc.Driver (v9.3) -9) com.microsoft.sqlserver.jdbc.SQLServerDriver (v12.10) - -Select a driver by number: 5 - -Selected Driver: oracle.jdbc.OracleDriver - -Enter JDBC URL (e.g., jdbc:oracle:thin:@host:port:sid): jdbc:oracle:thin:@54.172.89.18:1521/XE -Enter username: hr -Enter password: - -Connecting... - -=== Connection Metadata === -JDBC Driver Name: Oracle JDBC driver -JDBC Driver Version: 23.8.0.25.04 -JDBC Spec Version: 4.3 -Database Product Name: Oracle -Database Product Version: Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production -Version 18.4.0.0.0 - -✅ Connection successful! -``` - From 33aa550cf6e4329eacbf45e78bc97c89c1b52293 Mon Sep 17 00:00:00 2001 From: HughWilliams Date: Wed, 17 Dec 2025 20:33:37 +0000 Subject: [PATCH 6/6] Create jdbc-drivers-readme.md --- jdbc-drivers-readme.md | 92 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 jdbc-drivers-readme.md diff --git a/jdbc-drivers-readme.md b/jdbc-drivers-readme.md new file mode 100644 index 0000000..3262451 --- /dev/null +++ b/jdbc-drivers-readme.md @@ -0,0 +1,92 @@ +## List Available JDBC Drivers +Here's a Java program that interrogates its host operating enviroment (Java Virtual Machine) for currently installed drivers. The drivers discovered can then be tested for basic connectivity. + +### Why? +Use of our JDBC or ODBC-JDBC bridge drivers depends on an easy to used experience during installation, configuration, and use. + +### How? +1. Determine the location of the JAR files of each of the JDBC drivers of interest. Ideally, place them in a common directory (folder) of your choosing +2. Ensure the CLASSPATH operating system environment variable contains an entry for each of the JAR files of each of the JDBC Drivers of interest. +3. Save the Java source code to a file e.g., `UniversalJDBCTest.java` +4. Compile the .java source code using: ` javac -cp ".:/{JDBC-JAR-FILES-DIRECTORY}/*" UniversalJDBCTest.java` e.g., ` javac -cp ".:/Library/Java/Extensions/*" UniversalJDBCTest.java` +5. Run the compiled program (.class) using: ` java -cp ".:/{JDBC-JAR-FILES-DIRECTORY}/*" UniversalJDBCTest` e.g., ` java -cp ".:/Library/Java/Extensions/*" UniversalJDBCTest` -- if you don't want to depend on $CLASSPATH for picking up JDBC Driver JAR file locations +6. Run the compiled program (.class) using: ` java UniversalJDBCTest` -- if you are depending on $CLASSPATH for picking up JDBC Driver JAR file locations + + +#### Usage Examples + +##### Virtuoso (multi-model DBMS for supporting both SQL and SPARQL queries via JDBC) + +```sh +=== Universal JDBC Connection Test === + +Available JDBC Drivers: + +1) com.informix.jdbc.IfxDriver (v4.2) +2) com.informix.jdbc.InformixDriver (v15.0) +3) virtuoso.jdbc4.Driver (v3.120) +4) org.postgresql.Driver (v42.7) +5) oracle.jdbc.OracleDriver (v23.8) +6) openlink.jdbc4.Driver (v4.56) +7) com.amazonaws.athena.jdbc.AthenaDriver (v1.0) +8) com.mysql.cj.jdbc.Driver (v9.3) +9) com.microsoft.sqlserver.jdbc.SQLServerDriver (v12.10) + +Select a driver by number: 3 + +Selected Driver: virtuoso.jdbc4.Driver + +Enter JDBC URL (e.g., jdbc:oracle:thin:@host:port:sid): jdbc:virtuoso://localhost/charset=UTF-8/ +Enter username: dba +Enter password: + +Connecting... + +=== Connection Metadata === +JDBC Driver Name: OpenLink Virtuoso JDBC pure Java +JDBC Driver Version: 3.120 (for Java 2 platform) +JDBC Spec Version: 3.0 +Database Product Name: OpenLink Virtuoso VDBMS +Database Product Version: 08.03.3332 + +✅ Connection successful! +``` + +##### Oracle + +```sh +=== Universal JDBC Connection Test === + +Available JDBC Drivers: + +1) com.informix.jdbc.IfxDriver (v4.2) +2) com.informix.jdbc.InformixDriver (v15.0) +3) virtuoso.jdbc4.Driver (v3.120) +4) org.postgresql.Driver (v42.7) +5) oracle.jdbc.OracleDriver (v23.8) +6) openlink.jdbc4.Driver (v4.56) +7) com.amazonaws.athena.jdbc.AthenaDriver (v1.0) +8) com.mysql.cj.jdbc.Driver (v9.3) +9) com.microsoft.sqlserver.jdbc.SQLServerDriver (v12.10) + +Select a driver by number: 5 + +Selected Driver: oracle.jdbc.OracleDriver + +Enter JDBC URL (e.g., jdbc:oracle:thin:@host:port:sid): jdbc:oracle:thin:@54.172.89.18:1521/XE +Enter username: hr +Enter password: + +Connecting... + +=== Connection Metadata === +JDBC Driver Name: Oracle JDBC driver +JDBC Driver Version: 23.8.0.25.04 +JDBC Spec Version: 4.3 +Database Product Name: Oracle +Database Product Version: Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production +Version 18.4.0.0.0 + +✅ Connection successful! +``` +