VS.NET通过JDBC访问数据库

数据库连接技术综合(ado,odbc,ado.net,ole db,jdbc) 此ppt 综合了几乎所有的数据库连接技术(ado,odbc,ado.net,ole db,jdbc) ,并且有具体的java和 jsp的两个实例,安装好开发环境之后 可以直接运行 立即下载

问题提出

看到这个题目,你可能有两个疑问:有必要吗?可能吗?

下面我来逐一解答:

1、目前为止纯Java数据库有不下10个,有商业的也有开源的,这是一个很大的数据来源,它们都提供了JDBC驱动,可以在Java中很容易的连接进行开发,对.NET的人员来说,这就是一个噩梦,它们没有ODBC、OLEDB等Windows下数据库驱动,也就不能连接这些数据库。还有些数据库的JDBC驱动比ODBC驱动使用更简单,如Oracle的thin类型的JDBC驱动可以在没有安装oracle客户端的情况下使用。

2、用.NET直接调用JAVA程序是很难的,它们运行在不同的虚拟机里面。但它们之间可以通过网络来沟通,这样不仅与语言平台无关,也与操作系统平台无关。关键是要建立沟通的协议。

SQLHUB是一个纯Java开发分布式异构数据库,它使的异构的数据库之间可以透明的访问,它一直没有提供.NET可使用的数据库驱动,也导致不能在.NET中访问它。本来我是想开发一个针对它的专用ADO驱动,后来经过慎重考虑后,决定开发一个基于JDBC的共用ADO.NET驱动,这样不仅SQLHUB可用,其它Java数据库也可用了,关键是我可以专注于完善SQLHUB的JDBC驱动了。

实现

需要开发的主要内容:

.NET端:

²        JdbcConnection:实现与JDBC服务器的连接

²        JdbcCommand:使用JdbcConnection来执行SQL命令,产生JdbcDataReader等结果

²        JdbcDataReader:读取数据库查询结果集

²        JdbcIO:实现与JDBC服务器的交互,包含命令打包和返回结果分析

JAVA端

²        JdbcServer:JDBC服务器,监听来自.NET端的连接请求,实现使用JDBC与目标数据库连接

²        JdbcConn:JDBC数据库连接,用于处理来自.NET端的SQL命令执行

²        JdbcIO:实现与.NET端的交互,包含命令分析和返回结果打包

应用示例

启动JDBC服务器

在SQLHUB系统目录下找到JdbcServer.bat运行

可以点击加载Java程序库加载Jdbc驱动。

.NET端程序开发

引入程序库Hgsql.dll,可以在SQLHUB的程序目录下的ado中找到

编写如下C#测试代码:

using System;

using System.Data;

using Hgsql.Data;

 

/// <summary>

/// JDBC驱动测试

/// </summary>

public class JdbcTest

{

    public JdbcTest()

    {

    }

    static void Main ()

    {

        try

        {

            JdbcConnection conn = new JdbcConnection();

            conn.ConnectionString =

                "driver={oracle.jdbc.driver.OracleDriver}" //JDBC驱动名称

                + ";url={jdbc:oracle:thin:@localhost:1521:ora}" //JDBC数据库连接URL

                + ";user=scott" //数据库用户名

                + ";password=tiger" //数据库用户口令

                + ";host=localhost" //JDBC服务器

                + ";port=2007"; //JDBC服务器服务端口

            Console.WriteLine("连接串:" + conn.ConnectionString);

            //打开连接

            conn.Open();

            IDbCommand cmd = conn.CreateCommand();

            cmd.CommandText = "select * from emp";

            Console.WriteLine("查询:" + cmd.CommandText);

            IDataReader reader = cmd.ExecuteReader();

            //显示字段

            for (int i = 0; i < reader.FieldCount; i++)

            {

                if (i > 0) Console.Write("/t");

                Console.Write(reader.GetName(i));

            }

            Console.Write("/n");

            //显示查询结果

            while (reader.Read())

            {

                for (int i = 0; i < reader.FieldCount; i++)

                {

                    if (i > 0) Console.Write("/t");

                    Console.Write(reader.GetString(i));

                }

                Console.Write("/n");

            }

            reader.Close();

            cmd.CommandText = "update emp set ename = ename";

            Console.WriteLine("修改:" + cmd.CommandText);

            Console.WriteLine(cmd.ExecuteNonQuery());

            cmd.CommandText = "select sum(sal) from emp";

            Console.WriteLine("统计:" + cmd.CommandText);

            Console.WriteLine(cmd.ExecuteScalar());

            conn.Close();

        }

        catch (Exception e)

        {

            Console.WriteLine(e.Message);

        }

        Console.Read();

    }

}

输出结果

连接串:driver={oracle.jdbc.driver.OracleDriver};url={jdbc:oracle:thin:@localhost

:1521:ora};user=scott;password=tiger;host=localhost;port=2007

查询:select * from emp

EMPNO   ENAME   JOB     MGR     HIREDATE        SAL     COMM    DEPTNO

7369    SMITH   CLERK   7902    1980-12-17 0:00:00      800             20

7499    ALLEN   SALESMAN        7698    1981-02-20 0:00:00      1600    300

30

7521    WARD    SALESMAN        7698    1981-02-22 0:00:00      1250    500

30

7566    JONES   MANAGER 7839    1981-04-02 0:00:00      2975            20

7654    MARTIN  SALESMAN        7698    1981-09-28 0:00:00      1250    1400

30

7698    BLAKE   MANAGER 7839    1981-05-01 0:00:00      2850            30

7782    CLARK    MANAGER 7839    1981-06-09 0:00:00      2450            10

7788    SCOTT   ANALYST 7566    1987-04-19 0:00:00      3000            20

7839    KING    PRESIDENT               1981-11-17 0:00:00      5000

10

7844    TURNER  SALESMAN        7698    1981-09-08 0:00:00      1500    0

30

7876    ADAMS    CLERK   7788    1987-05-23 0:00:00      1100            20

7900    JAMES   CLERK   7698    1981-12-03 0:00:00      950             30

7902    FORD    ANALYST 7566    1981-12-03 0:00:00      3000            20

7934    MILLER  CLERK   7782    1982-01-23 0:00:00      1300            10

修改:update emp set ename = ename

14

统计:select sum(sal) from emp

29025

在SQLHUB的发行包下面还带了一个ADO.NET for JDBC测试程序ado/Hgsql.exe

 

总结

从技术上讲,上面的实现不是很难,但却是很有意义的,Jdbc的ADO驱动和Jdbc服务器可以到http://www.hgsql.com上下载。

 

 
手把手教你为高云DDR3控制器添加物理约束:从位置锁定到参数配置 本文详细介绍了在高云FPGA平台上为DDR3控制器添加物理约束的实战指南,从位置锁定到参数配置。通过解析高云DDR3控制器的架构,提供关键模块的位置约束和参数调优方法,帮助开发者解决时序不稳定、初始化失败等常见问题,实现稳定可靠的DDR3接口。 阅读详情

相关推荐

STM32G474实战:数字LLC电源控制程序从零到跑通(附完整代码解析)

本文详细介绍了基于STM32G474微控制器开发数字LLC电源控制程序的完整实战流程。从硬件平台搭建、CubeMX工程配置,到核心控制逻辑、双速率中断框架、数字PID实现,再到Burst模式、状态机等高级策略与异常处理,提供了从零到跑通的系统化指南与代码解析,助力开发者掌握高效数字电源的程序编写与调试技巧。

s1t2u3的博客 1240

jdbc与ado.net连接数据库的区别

java平台和.net平台连接数据库技术的对决

weixin_43752834的博客 1681

基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型对话聊天机器人

前面两篇博文,我们在笔记本部署了Llama 3 8B大模型,使用Ollama搭建了基于Web 可视化对话机器人。在使用过程中,大模型经常出现中文问题英文回答的问题。本博文就用Llama3-Chinese-Chat微调模型来解决这个问题……

老牛啊 9240

asp.net(c#)jdbc连接oracle,c# – 从asp.net核心连接到Oracle数据库

首先,我已经阅读了有关连接到Oracle数据库的其他帖子,遗憾的是他们无法帮助我.我将描述我所尝试的内容,并希望有人可以指出我正确的方向.首先我尝试安装ODTwithODAC122010,正如许多消息来源所说的那样,但是这个给了我一些退出非退出代码的进程.它说它很成功,但似乎没有任何改变.在我旁边尝试安装ODTforVS2017_122010.exe我有一个更新的Visual Studio专业人员...

weixin_36238706的博客 1573

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

东城绝神 1369

calibre:将calibre 的layer number 转换为实际的laymer 名称(7)

可以使用与版图数据库配套的(Standard Verification Rule Format,标准验证规则格式),在 Calibre DESIGNrev 中加载图层名称。

u013620135的博客 984

再谈ADO .NET vs JDBC

曾经在.NET下有过大约三年的开发经历,可以说非常熟悉ADO .NET。ADO .NET最大的特性是对断开连接方式的全方位支持,其引入了DataSet、DataTable、DataRow等等对象,构建了一个“内存数据库”简化版本,DataAdapter把DataReader的数据填充到DataTable或者DataSet中,给使用者一个直观的使用方式。ADO .NET还能够和ASP .NET和Wi...

weixin_30553837的博客 268

YOLOv8进阶实战:融合SAHI超推理算法,在无人机应用中精准捕捉视频与图片中的微小目标

YOLOv8改进是一种先进的目标检测算法,通过引入辅助超推理算法SAHI推理,使得小目标无法逃避检测。SAHI推理算法结合视频和图片的特点,利用先进的超推理技术,提高了目标检测的准确性和鲁棒性。不仅如此,YOLOv8改进还支持对视频和图片进行实时的目标检测,将检测结果直观地呈现给用户。这一技术的应用范围广泛,可以用于安防领域,提升监控设备的性能和效率;也可以用于无人驾驶领域,实现精准的目标识别和跟踪。总之,YOLOv8改进是一项具有突破性的技术,为目标检测领域带来了重大的进展。

weixin_51988935的博客 808

.Net转Java自学之路—基础巩固篇三十(JDBC)

JDBC:Java数据库连接   JDBC的四大配置参数:     dirverClassName:com.mysql.jdbc.Dirver     url:jdbc:mysql://localhost:3306/数据库名称     username:数据库用户名     password:数据库密码   各大数据库的dirverClassName与url:     mysql: ...

weixin_33835103的博客 167

我用 Python 监听了自己的键盘,生成击键热力图,看看每天到底在“摸鱼”还是“搬砖”?

数据采集(监听)、持久化(I/O)与可视化展示,必须是三个完全独立的模块,这符合单一职责原则。在多线程读写 Python 字典时,锁住的时间要尽可能短,防止 I/O 线程把高频的监听线程阻塞住。这类涉及底层的代码与“键盘记录木马”只有一线之隔。永远不要把击键记录通过网络上传,所有数据必须localhost消化。人脑对枯燥的 JSON 日志是不敏感的,但对颜色和空间极其敏感。这也是为什么 Prometheus + Grafana 是标配。使用ctypes。

BUG猿的博客 194

15 RK3568 RTL8111 PCIE

我这边扩了三个网卡。pcie3.0拆分了1+1lane。需要注意自己的reset引脚修改为自身rtl引脚即可。1、调试pcie 扩展网卡 RTL8111。

qq_39451352的博客 182

JDBC|JDBC基础知识

JDBC(Java Database Connectivity)是Java语言与各种关系型数据库进行交互的重要桥梁。通过JDBC,我们可以使用Java程序连接数据库、执行SQL语句并处理查询结果。本文将为您介绍JDBC的基础知识,帮助您快速入门。

犬余的博客 1934

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1674

比较ole db/odbc/ado/ado.net/jdbc

数据库连接方式各式各样,如何取舍,如何区分? 让人很是迷惑,只有理解各种方式异同后,方能做出正确选择。 1. 如何理解? 最早:数据库编程都是直接操作数据库厂商提供的API,每个数据库厂商的提供的数据库操作的API都不相同,如调用函数,操作语句等等。因此每个应用程序都只能对应一个数据库。如果想换数据库,需要重写一遍数据库操作代码,这样的代价是非常大的。   后来:微软开发的ODBC结...

积累点滴,保持自我 710

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JSP中使用JDBC访问Java DB数据库

使用NetBeans JSP中使用JDBC访问Java DB数据库,首先了解一下Java DB数据库:Java DB是Sun公司的轻量级数据库。它却是一个先进的全事务处理的基于Java技术的数据库,它支持各类开放标准、触发器和存储程序。Java DB可以客户端服务器模式使用,也可以直接嵌入到一个Java应用程序中。在这些场合,Java DB都可以在同样的Java虚拟机(JVM)中运行,这就无需在应...

扬 帆 起 航ing 407

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JDBC—(Java DataBase Connectivity)

1.概念 JDBC(Java DataBase Connectivity):Java数据库连接。它的本质是sun公司定义的一套操作所有关系型数据库的规则,也就是统一的JavaAPI接口。 看到JDBC有没有想到我们在.net 中的ADO.NET,两者类似,但是还是存在一定的差异,请看博客:再谈ADO .NET vs JDBC 下图是JDBC示意图,JDBC这是提供统一的接口,各个...

有道无术,术尚可求,有术无道,止于术。 843

Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Sav

Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Savepoint 1 1.3. 离线数据api 1 1.4. Ui数据绑定 2 1.5. 多数据集的支持 2 1.6. 分页访问数据的支持 2 1.7. 数据源的获取方式式多样 2 1.8. 数据库与数据对象化 2 2. BDE的性能比初期的ODBC 3 2.1. Jdbc 3 3..

attilax的专栏 377

比较ole db/odbc/ado/ado.net/jdbc | ADO、ADO.net、DAO

https://www.cnblogs.com/renzhezhiye/archive/2013/02/19/2917217.html 比较ole db/odbc/ado/ado.net/jdbc 数据库连接方式各式各样,如何取舍,如何区分? 让人很是迷惑,只有理解各种方式异同后,方能做出正确选择。 1. 如何理解?     最早:数据库编程都是直接操作数据库厂商提供的API,每个数据库厂...

zzy7075的专栏 1359

JDBC小结(附源码) 连接mysql 包含与ADO.net的操作对比及.net中的操作源码

谢了一个JDBC的小例子供大家分享,可以直接与mysql连接使用的。其实所有的数据库操作都是一样的,差不多都是一个套路,下面就肤浅地剖析下吧! JDBC vs ADO.NET:1.加载SQL DRIVER,获得连接CONNECTION。   jdbc:     Class.forName("");     Connection conn=DriverManager.getC

魏照哲的专栏 1249

Java JDBC对应C# ADO连接数据库之区别

简单分析下和JDBC之间的区别,为像我这样的萌新提供一点帮助!菜鸟一只,讲的比较基础,大神直接跳过吧!

qingming7573的博客 6223

Windows Azure 入门 -- VS 2015部署 ASP.NET网站(项目) 与 数据库

Windows Azure 入门 -- 部署 ASP.NET网站(项目) 与数据库 https://www.dotblogs.com.tw/mis2000lab/2015/12/24/windowsazure_web_db 有位学员临时需要这些步骤,我也没做过,但我简单实验一下,大概理解一些的作法 其实,有架设过IIS,自己会操作SQL Server管理画面的话,Window...

weixin_30721899的博客 352

【转】Java JDBC对应C# ADO连接数据库之区别

JDBC对应C#连接数据库之区别 之前一直在用java,最近因为找了.NET的工作,开始学习.NET。 今天也是查了好多资料,但是一直没有看到和JDBC之间的对比博文,开始也是一头雾水! 但是功夫不负有心人终于大概弄懂了C#怎么去连接数据库了,故简单分析下和JDBC之间的区别,为像我这样的萌新提供一点帮助!菜鸟一只,讲的比较基础,大神直接跳过吧! 下面正题准备工作 JDBC在这一步应...

一明 352

java连接oracle数据库jar包_jdbc连接oracle数据库jar包

java学习:jdbc连接示例java中最常用的数据库连接技术就是JDBC。目前几乎所有的主流数据库都提供了相应的jdbc驱动,可以简单理解为.net中的数据库客户端dll,.net中如果对于netframework默认不支持的数据库(比如sqllite,mysql之类),就必须要下载专门的数据库客户端dll文件,在vs.n...文章杨俊明2012-11-03820浏览量weblogic配置sql...

weixin_33258874的博客 3846

Atitit 数据库抽象层jdbc pdo ado.net等比较与异常点 目录 1. 应该具有的功能 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Savepoint 1

Atitit 数据库抽象层jdbc pdo ado.net等比较与异常点 目录 1. 应该具有的功能 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Savepoint 1 1.3. 离线数据api 1 1.4. Ui数据绑定 2 1.5. 多数据集的支持 2 1.6. 分页访问数据的支持 2 1.7. 数据源的获取方式式多样 2 2. 离线数据集...

attilax的专栏 311

深度解析:通过ADO.NET驱动Kdbndp高效连接与操作Kingbase数据库

国产数据库KingbaseES与ADO.NET的深度集成实践 摘要:本文系统介绍了国产分布式数据库KingbaseES与ADO.NET技术的融合应用。通过Kdbndp驱动这一关键桥梁,开发者能够高效连接KingbaseES数据库,实现数据操作与事务管理。文章详细解析了Kdbndp驱动的核心优势、关键类库及使用方法,包括: 原生.NET实现,支持跨平台部署 完整覆盖ADO.NET标准接口 针对KingbaseES特性的深度优化 同时提供了从环境配置到代码实现的完整指南,展示了如何通过C#进行数据库连接、参数化

优快云博客专家,领域包括但不限于:AI、大数据、Python、架构师,有合作、课程、问题、疑惑请私信博主 6万+
上一篇: SQLHUB分布式数据库调用语法的支持
下一篇: HGSQL开始支持调试了
sqlhub
博客等级 码龄21年 19粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值