c#通过jdbc连接sql

问题描述 投票:0回答:3

我有一个c#程序,需要通过JDBC连接到SQL。我读到 JDBC 可与 java 配合使用,并且由于我需要从 C# 使用它,所以我发现 jni4net 可以在两者之间架起桥梁。

我似乎找不到任何有关如何执行此操作的示例或教程。任何帮助将不胜感激。我已阅读并尝试使用 jni4net,但找不到任何连接到数据库的示例。

java c# sql jdbc jni4net
3个回答
4
投票

JDBC代表Java DataBase Connectivity,这意味着它是针对Java(或可以在Java虚拟机上运行的其他语言)的。 C# 是一种不同的语言,有自己的运行时。尽管可以从 C# 访问 Java,但对于数据库连接来说这样做可能会非常麻烦且缓慢。

相反,您应该为您的数据库系统寻找 ADO.net 数据库提供程序。大多数数据库系统都有一个。


2
投票

您可以使用 robbiblubber.org JDBC 扩展 Libaray 通过 JDBC 从 .NET 连接到数据库。当然,如果有 ADO.NET 的本机驱动程序,您应该使用它。


0
投票

查看这篇文章https://medium.com/@marketing_23529/jdbc-drivers-integration-across-c-and-languages-such-as-javascript-python-golang-c-perl-and-9efcfc6ec258介绍如何从任何语言使用 JDBC。它提倡通过中间人类或直接使用我们的产品 Javonet 与 JDBC 交互,但也讨论了其他替代方案。

事实上,通过运行时桥接或 GraalVM、JNBridge 或 Javonet 等技术,您可以轻松地与其他语言的 Java 类进行交互,包括 JDBC 相关的 Java Framework SDK。

不仅因为我为之工作,我还需要强调的是,通过 Javonet,您可以使用 C# 以及 JavaScript、Python、Ruby、Perl、GoLang 和 CPP 的 JDBC 驱动程序

检查下面的代码示例:

Javonet.Activate("your-license-key"); 

var calledRuntime = Javonet.InMemory().Jvm(); 
string libraryPath = "<path to your JDBC SQLite JAR file>"; 
string className = "java.sql.DriverManager"; 
string connectionString = "jdbc:sqlite:<path to your SQLite file>"; 
string sql = "SELECT * FROM Orders WHERE Id = ?"; 

var calledRuntimeType = calledRuntime.GetType("java.sql.DriverManager").Execute(); 
var command = connection.InvokeInstanceMethod("prepareStatement", sql).Execute(); 
command.InvokeInstanceMethod("setInt", 1, 1).Execute(); 

var reader = command.InvokeInstanceMethod("executeQuery").Execute(); 
var id = (int)reader.InvokeInstanceMethod("getInt", "Id").Execute().GetValue();

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.