通过 JDBC 访问数据库

JDBC——Java访问数据库 阅读详情

通过JDBC访问数据库

JDBC是什么?

如果您已经学习了 “使用 JDBC将 XML 数据插入数据库”教程,那么可以直接跳到 SELECT语句剖析 一节。

就在不久之前,要与数据库交互,开发人员必须使用针对该数据库的特定 API。这使得创建独立于数据库的应用程序非常困难,甚至完全不可能。

JDBC 类似于 ODBC(即开放数据库连接),提供了访问数据库的标准 API 中介。从左侧的资料中可以了解到,可以使用标准 JDBC命令,JDBC驱动程序会将其转为针对数据库的原生 API。

本教程的任何内容均未提及特定数据库,因为选择哪种数据库是无关紧要的。所有命令均为标准 JDBC命令,驱动程序可将其转为适合您选择的任意数据库的原生命令。由于这种 API独立性,因此您在一定程度上可以轻松使用另外一种数据库,除了驱动程序名称和可能需要更改的连接 URL(在 创建连接 时使用)之外,您不需要更改应用程序中的任何内容。

有关为您的数据库下载恰当的 JDBC驱动程序的信息,请参阅 参考资料 部分。可用的JDBC驱动程序超过 150种,实际上适合任何数据库。

甚至还有适用于不具备可用 JDBC驱动程序的数据库的选项。


图 1.无 JDBC 驱动程序的数据库的示例
 

回页首

JBDC-ODBC 桥接

只要有ODBC驱动程序可用,那么针对某种数据库的特定 JDBC驱动程序就并非必不可少;您可以使用 JDBC-ODBC 桥接 取而代之。应用程序将调用桥接,桥接将命令转为 ODBC,ODBC驱动程序将其转为原生 API。

出于多种原因,并不推荐使用 JDBC-ODBC桥接来访问数据库,其中包括性能和配置方面的原因(命令必须通过两个 API传递,必须在每一个客户端上安装和配置 ODBC驱动程序),但是,如果无纯粹的 JDBC驱动程序可用,那么使用桥接来进行测试和开发也是一种可以接受的做法。

如果您选择使用桥接,那么在 Windows系统中应该选择 Start>Settings>Control Panel>ODBCData Sources 来创建一个系统数据源名称 (DSN)。记下 DSN的名称,在 创建连接 时需要使用此名称。


图 2.具有 JDBC 和驱动程序的数据库的示例
 

回页首

设置数据库和驱动程序

create table products (

   product_id   numeric primary key,

   product_name varchar(50),

   base_price   numeric,

   size         numeric,

   unit         varchar(10),

   lower        numeric,

   upper        numeric,

   unit_price   numeric )

 

首先,请确保已安装了您选择使用的所有数据库,并且它们都能正常运行,此外还要确保驱动程序是可用的。可以从http://industry.java.sun.com/products/jdbc/drivers 下载JDBC驱动程序。

创建数据库之后,再创建必要的表。本教程仅使用一个表,即 products。其结构如左侧所示。通过采用适合您的数据库的恰当步骤来创建表。

注意:在一般情况下,此数据应至少会拆分到两个相关的表中;为了简便起见,本示例仅使用了一个表。

回页首

访问数据库的流程

使用Java与数据库交互通常涉及以下步骤:

  1. 载入数据库驱动程序。这可以是 JDBC驱动程序,也可以是 JDBC-ODBC桥接。
  2. 为数据库创建一个 Connection。
  3. 创建一个 Statement 对象。此对象实际上会执行 SQL或存储过程。
  4. 创建一个 ResultSet,并使用所执行的查询的结果填充它(如果目标是检索数据或直接更新数据)。
  5. 检索或更新 ResultSet 中的数据。

java.sql 包中包含 JDBC 2.0 Core API,它是JavaTM 2 SDK, Standard Edition 发行版本的一部分,用于访问数据库。javax.sql 包是作为 Java 2 SDK, Enterprise Edition 的一部分发布的,其中包含 JDBC 2.0 Optional Package API。

本教程仅使用JDBC 2.0 Core API中的类。

回页首

实例化驱动程序

为了访问数据库,首先要加载 JDBC驱动程序。在任意给定时间,如果有多种驱动程序可用,DriverManager 会尝试创建与它所知道的每一种驱动程序之间的连接,从而确定需要使用哪种驱动程序。应用程序将使用成功连接的第一个驱动程序。DriverManager 可以通过两种方式得知驱动程序的存在。

第一种方式是直接使用 Class.forName() 加载,如本例中所示。载入驱动程序类之后,它将向 DriverManager 进行注册,如下所示:

public class Pricing extends Object {

 

   public static void main (String args[]){

 

      //For the JDBC-ODBC bridge, use

      //driverName = "sun.jdbc.odbc.JdbcOdbcDriver"

      String driverName = "JData2_0.sql.$Driver";

 

      try {

         Class.forName(driverName);

      } catch (ClassNotFoundException e) {

         System.out.println("Error creating class: "+e.getMessage());

      }

   }

}

 

获得一个成功加载的驱动程序之后,应用程序即可连接到数据库。

DriverManager 可用于定位一个驱动程序的第二种方法就是循环获取 sql.drivers 系统属性中找到的任何驱动程序。sql.drivers 属性是可能存在的驱动程序的冒号分隔列表。在加载类之前,将始终动态检查此列表,因此如果您希望使用某种特殊驱动程序,请确保sql.drivers 属性为空,或者从您需要的驱动程序开始。

回页首

创建连接

加载驱动程序之后,应用程序即可连接到数据库。

DriverManager 将通过静态 getConnection() 方法建立连接,该方法将获取数据库的 URL 作为参数。URL通常表示为:

jdbc:<sub-protocol>:databasename

 

然而,引用URL可以使用活动驱动程序能够理解的任何格式编写。请查询您的 JDBC驱动程序的文档,以便确定 URL格式。

一种需要使用子协议的场景就是通过 ODBC进行连接。如果直接通过 ODBC访问 DSN为 pricing 的示例数据库,那么 URL 应该是:

odbc:pricing

 

这就意味着,要通过JDBC进行连接,URL将是:

jdbc:odbc:pricing

 

实际连接创建如下:

                                           import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

 

public class Pricing extends Object {

 

   public static void main (String args[]){

 

      //For the JDBC-ODBC bridge, use

      //driverName = "sun.jdbc.odbc.JdbcOdbcDriver"

      //and

      //connectURL = "jdbc:odbc:pricing"

      String driverName = "JData2_0.sql.$Driver";

      String connectURL = "jdbc:JDataConnect://127.0.0.1/pricing";

      Connection db = null;       

      try {

         Class.forName(driverName);

         db = DriverManager.getConnection(connectURL);

      } catch (ClassNotFoundException e) {

         System.out.println("Error creating class: "+e.getMessage());

      } catch (SQLException e) {

         System.out.println("Error creating connection: "+e.getMessage());

      }

   }

}

 

成功创建连接后,即可执行任何所需的数据库操作(例如,插入或更新数据)。

回页首

关闭连接

由于 Statement 和 Connection 是对象,因此 Java 将对其执行垃圾收集,释放它们占用的数据库资源。这可能会误导您认为这代表您无需为关闭这些对象而担忧,但实际上并非如此。

Java 应用程序本身完全有可能拥有大量可用资源,也就是说垃圾收集的频率较低。此外,在 Java应用程序拥有大量资源时,可用的数据库资源可能受到限制。Java对象也许会占用大量数据库资源,而这些对象很有可能被应用程序关闭。

无论是否存在错误,都有必要确保这些对象已关闭,因此应该为已有的 try-catch 块添加一个 finally 块。

...

      Connection db = null;  

      try {

         Class.forName(driverName);

         db = DriverManager.getConnection(connectURL);

      } catch (ClassNotFoundException e) {

         System.out.println("Error creating class: "+e.getMessage());

      } catch (SQLException e) {

         System.out.println("Error creating connection: "+e.getMessage());

      } finally {

         System.out.println("Closing connections...");

         try {

            db.close();

         } catch (SQLException e) {

            System.out.println("Can't close connection.");

         }

      }

   }

}

 

具有讽刺意味的是,close() 方法本身可能会引发一个 SQLException,因此需要自己的 try-catch 块。

 本文来自:http://www.ibm.com/developerworks/cn/xml/tutorials/x-extract/section2.html


如何使用JDBC访问数据库 如何使用JDBC访问数据库 ##使用cmd也可以访问数据库, 为什么还要学习JDBC? 但是以后在企业开发中, 我们更多的是通过程序, 特别是Java程序访问数据库, 如果使用Java语言访问数据库, 就需要使用JDBC这门 技术. 1.提出需求: 创建一个 jt_db 数据库,在库中创建一个Account表,并插入三条记录,然后利用Java程序查询出Account表中所有的记录,并打印在控制台上... 阅读详情

相关推荐

《小白入门:无人机电调 ESC 的 PWM 接口特性、主流协议与使用指南》

电调是无人机的 “动力中枢”,其 PWM 接口是入门的基础,而 SBUS、DroneCAN 等协议则代表了更高阶的控制方式。小白学习时,需先掌握 PWM 的基本特性和连接方法,再根据场景选择合适的协议,同时严格遵守使用注意事项(如电源匹配、校准步骤、安全操作)。随着实践深入,逐步理解 “协议差异” 和 “系统协同”,才能让无人机更稳定、安全地飞行。

bother3000的博客 3769

JDBC 使用

JDBC 是Java的官方数据库连接接口,

东平同学 973

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4392

JDBC数据库的访问

JDBC(Java Database Connectivity)是 Java 用于连接和操作数据库的标准 API。

m0_74268441的博客 1234

光栅衍射有入射角时_衍射型多焦点人工晶体光学原理

多焦点人工晶体如何把光线分成多个焦点的?这个问题大部分专业书只是蜻蜓点水,并没有讲明白。希此文粗浅的解释,能帮您加深理解,请多指正。接下来,我将按照一下历史发展的顺序讲解一下:光的认识、菲涅尔灯塔(菲涅尔透镜)、菲涅尔波带盘(半波带盘)、多焦点人工晶体。一:首先复习一下光的认识历史。我们现在都知道光是一种电磁波,具有波粒二相性,但是认识光的本质也经历非常曲折漫长的过程。牛顿时代的几何光...

weixin_28963467的博客 2352

GameFramework框架详解之 DataTable配置表模块

一.前言: DataTable模块是项目的配置表模块,配置表一般是从excel导出csv/json/xml格式的,之所以是excel作为源文件,原因是因为策划同学使用配表最方便。然后一键导出到项目中,除了csv/json/xml配置文件外,一般还会伴随着导出配置的实体类,这样研发同学就可以使用了。GameFramework的DataTable模块也是秉持着这种一贯的策略来实现的。 二.DataRow DataRow在excel数据表中,对应的是一行数据,而在代码中对应的其实就是一条数据对象。 接口IData

TxNet 4726

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

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

扬 帆 起 航ing 407

Linux内核驱动模型--PCIe(PCI Express)驱动​​

本文系统介绍了Linux内核中PCIe驱动的设计与实现。首先从架构定位入手,指出PCIe驱动基于PCI子系统扩展支持高速、低功耗特性。核心数据结构struct pci_driver包含设备匹配表id_table、生命周期函数probe/remove等关键组件。文章详细解析了驱动与设备的绑定流程、资源管理机制,并重点阐述了MSI-X中断、电源管理、热插拔和多队列等高级特性实现方案。最后提供了lspci、dmesg等调试工具的使用方法,总结了PCIe驱动在支持高性能设备中的关键作用。全文通过架构设计、核心结构、

amy_mhd的博客 428

JDBC(java Database Connectivity)数据库连接(客户端如何访问数据库):

JDBC(java Database Connectivity)数据库连接(客户端如何访问数据库): 主流架构(两种架构): 1、BS架构(Browser and server)浏览器服务器架构-------》web、javaweb、phpweb 2、CS架构(Client and server)客户端服务器架构---------》QQ、微信 主要是使用java程序对数据库的访问...

lzx2953763519的博客 661

AI辅助需求分析与提示词生成

文章标题 《AI辅助需求分析与提示词生成》 关键词 人工智能 需求分析 提示词生成 深度学习 机器学习 强化学习 数学模型 系统架构

AI天才研究院 1214

Week 9 10 Neural Networks

Week 9 10 Neural Networks

金州饿霸吃不饱的博客 404

jdbc访问数据库详解

一.jdbc简介 jdbc,java database Connectivity即java数据库连接,是一组定义了如何连接和操作数据库的java api。下面结合一个简单示例说明下具体步骤:public class Main { private static Logger LOG = LoggerFactory.getLogger(Main.class); public sta

荒野孤鹰 1001

常用元器件使用方法13:物理层接口芯片DP83848的使用方法

介绍: DP83848是以太网物理层接口芯片,具有多种型号,从便于焊接角度考虑LQFP-48封装较为合适,采用LQFP-48封装的芯片,有2种型号,分别为DP83848I和DP83848C,如下图所示。 其主要区别是使用温度不同,如下图所示。 这2种芯片芯片网上均有销售,按理说DP83848C价格应该更加便宜,实际不然,DP83848I的价格低于DP83848C,考虑或与芯片的出货量...

snmplink的博客 1万+

SpringBoot 中 JDBC 关系型数据库访问规范

JDBC 关系型数据库访问规范1)JDBC 概述2)JDBC 规范中有哪些核心编程对象?DriverManagerDataSourceConnectionStatement/PreparedStatementResultSet3)如何使用 JDBC 规范访问数据库? 无论是互联网应用还是传统软件,对于任何一个系统而言,数据的存储和访问都是不可缺少的。数据访问层的构建可能会涉及多种不同形式的数据存储媒介,本文关注的是最基础也是最常用的数据存储媒介,即关系型数据库,针对关系型数据库,Java 中应用最广泛的就是

姜皓的博客 547

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JDBC数据库访问

JDBC(Java Database Connectivity)是一种用于执行 SQL 语句的 Java API。它由一组用 Java 编程语 言编写的类和接口组成,为 Java 应用程序与各种不同数据库之间进行对话提供了一种便捷的方法,使得 开发人员能够用纯 Java API 来编写具有跨平台性的数据库应用程序。 23.1.1 JDBC 技术介绍 应用程序可以通过数据库厂商提供的 API

德润科技任子豪的专栏 593

深度学习工具包 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")

JDBC访问数据库实验

实 验 报 告 实验名称 JDBC访问数据库 日期 2020年 11 月03 日 一、实验目的: 1.理解JDBC的工作原理,掌握JDBC访问数据库; 2.掌握常见数据库MYSQL; 二、实验环境: Eclipse+MySQL 三、实验内容: 现在使用JDBC写一个简单的小程序,主要是使用JDBC连接MySQL数据库,然后对数据库进行一些基本的增删改查操作。 1、设计数据库表 先设计一个数据库表,用于保存用户信息,建表语句如下: CR

MrLuo8的博客 4704

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Spring及Spring boot java程序访问数据库 JDBC

JDBC——规范客户端程序如何来访问数据库的应用程序接口 What is JDBC? Java™ database connectivity (JDBC) is the JavaSoft specification of a standard application programming interface (API) that allows Java programs to access database management systems. The JDBC API consists of a s

qq_44587855的博客 989

使用JDBC访问数据库以及如何使用jdbc连接数据库

jdbc连接MySQL数据库的详细步骤附加连接代码

ArrayAda的博客 1712

使用JDBC访问数据库

<br />1.  odbc和jdbc<br />     ODBC                提供了一组对数据库访问的标准API,一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,   通过ODBC访问不同的数据库无需对数据库访问程序进行改动。ODBC十分合理实用,被广泛采用。         o      JDBC                 即Java Database Connection,是按照ODBC的模式制定的,是一个通用低层的、支持基本SQL功能的java API, 

xiyoukeke的专栏 3880

在java程序中用JDBC(Java DataBase Connection)访问sqlite数据库

[扩展]在java程序中用JDBC(Java DataBase Connection)访问sqlite数据库[超纲内容] 先在环境变量中添加jdbc驱动的jar文件. 前提:已经在e:/my.db数据库中建立了user表create table user(username varchar2,password varchar2); INSERT INTO user values(‘zhang3...

五万年前走丢了 508

hive的访问:通过JDBC远程连接hive数据仓库

hive的访问:终端访问  远程访问 终端访问:安装hive,利用shell脚本访问 不可并发访问 远程访问:通过JDBC连接数据仓库 支持并发访问 启动hiveserver2服务:查看该命令可知hiveserver2,等价于hive --service hiveserver2 &amp; [xiaoqiu@s150 /soft/hive/bin]$ cat hiveserver2 #...

Joy 1万+

JDBC(Java Database Connectivity,简称JDBC)---客户端程序如何来访问数据库

JDBC(Java Database Connectivity,简称JDBC)—客户端程序如何来访问数据库 前言: 主流架构: 1、BS架构(Browser and Server) 浏览器服务器架构—>web、javaweb、phpweb 2、CS架构(Client and Server) 客户端服务器架构 —>QQ、微信 简言之就是用java程序去访问数据库 正文: JDBC的连接步...

qq_38593205的博客 957

JDBC 访问各种数据库 URL 语法(总结篇)

JDBC 访问各种数据库 URL 语法(总结篇) 我们在写JAVA程序访问数据库或者配置连接池时,经常会用到JDBC访问数据库 的 URL 语法,现将一些常用的驱动和语法总结如下: (注意和相应的驱动程序搭配,不同的驱动程序要求的 URL 语法不尽相同) A. Firebird url=jdbc:firebirdsql:[HOST_NAME]/[PORT:][FUL

qq_35246288的博客 2265

JDBC如何访问数据库

JDBC如何访问数据库               还是这个简单的图书管理系统,之前在华信有学,但是由于自己没有实战,所以一知半解,这次敲了一个简单的图书管理系统,对JDBC访问数据库有了一定的了解。目前没有使用到JavaBean组件,也没有用到框架,手动连接数据库。那么分为如下几个步骤。           (1)、装载驱动程序。           (2)、定义所要连接数

xu_mengmeng的专栏 726

java用JDBC实现数据库访问

java用JDBC实现数据库访问 1.什么是JDBC JDBC(Java DataBase Connectivity,Java数据库连接)技术的简称,是一种用于执行SQL语句的Java API。它为数据库开发人员提供了一 个标准的API,使它们能够用纯Java API 来编写数据库应用程序。 2.操作原理 3.操作步骤 1、准备数据库驱动包(比如: MySQL数据库的驱动包) 2、加载JDBC驱...

深藏的是波光粼粼 571
上一篇: JNDI概念
下一篇: Object超类的使用方法
Litfer
博客等级 码龄15年 11粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值