JAVA JDBC--源自技术

java之jdbc连接db2数据库 /**了解基础情况**/ 对于Java程序员而言,DB2 提供了两种应用程序编程接口(API):JDBC 和 SQLJ。  JDBC:  JDBC 驱动程序分为旧的/CLI 驱动程序和新的通用 JDBC 驱动程序(Universal JDBC Driver)。  JDBC 是一个与供应商无关的动态 SQL 接口,该接口通过标准化的 Java 方法向您的应用程序提供数据访问。  JDBC 类似于 D 阅读详情

简介:

     JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口(Hibernate,Mybatis等ORM框架),使数据库开发人员能够编写数据库应用程序。

 

标准组件

Connection:链接(会话)对象。

DriverManager:驱动程序管理对象,用来创建会话。

Statement:SQL语句执行对象。

PreparedStatement:动态SQL语句执行对象。

CallableStatement:事务执行对象。

 

示例代码

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. import java.sql.Connection;  
  2. import java.sql.DriverManager;  
  3. import java.sql.PreparedStatement;  
  4. import java.sql.ResultSet;  
  5. import java.sql.SQLException;  
  6. import java.sql.Statement;  
  7.   
  8. /** 
  9.    JDBC API 
  10.  */  
  11. public class DataBase {  
  12.       
  13.     String driverName = "com.mysql.jdbc.Driver";  
  14.     String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8";  
  15.     String userName = "root";  
  16.     String pwd = "root";  
  17.       
  18.     public Connection getConnection(){  
  19.         /*加载驱动程序*/  
  20.         try {  
  21.             Class.forName(driverName);  
  22.         } catch (ClassNotFoundException e) {  
  23.             System.out.println("加载驱动程序错误!");  
  24.         }   
  25.         Connection connection;  
  26.         /* 创建链接  */  
  27.         try {  
  28.             connection = DriverManager.getConnection(url,userName,pwd);  
  29.               
  30.         } catch (Exception e) {  
  31.             connection = null;  
  32.             System.out.println("创建链接错误!");  
  33.         }  
  34.         return connection;  
  35.     }  
  36.       
  37.     public void createTable(){  
  38.         Connection connection = getConnection();  
  39.         try {  
  40.             /* SQL语句执行对象*/  
  41.             Statement statement;  
  42.             String createTable;  
  43.             statement = connection.createStatement();  
  44.             createTable = "CREATE TABLE USER(id BIGINT NOT NULL ,NAME TEXT,PRIMARY KEY (id))";  
  45.             statement.executeUpdate(createTable);  
  46.         } catch (SQLException e) {  
  47.             System.out.println("执行SQL错误!");  
  48.         }  
  49.     }  
  50.       
  51.     public void inserTableData(){  
  52.         Connection connection = getConnection();  
  53.         try {  
  54.             /* 动态SQL语句执行对象*/  
  55.             PreparedStatement statement;  
  56.             String insertTable;  
  57.             insertTable = "INSERT INTO USER(id,NAME)VALUES(?,?)";  
  58.             statement = connection.prepareStatement(insertTable);  
  59.             /* 参数下标从1开始 */  
  60.             statement.setInt(1, 1);  
  61.             statement.setString(2, "李连杰");  
  62.             statement.executeUpdate();  
  63.         } catch (SQLException e) {  
  64.             e.printStackTrace();  
  65.             System.out.println("执行SQL错误!");  
  66.         }  
  67.     }  
  68.       
  69.     public void findTableData(){  
  70.         Connection connection = getConnection();  
  71.         try {  
  72.             /* SQL语句执行对象*/  
  73.             Statement statement;  
  74.             String findTableData;  
  75.             statement = connection.createStatement();  
  76.             findTableData = "SELECT id,NAME FROM USER";  
  77.             ResultSet resultSet = statement.executeQuery(findTableData);  
  78.             /*遍历ResultSet*/  
  79.             while (resultSet.next()==true) {  
  80.                 /* 取值支持下标和列名两种方式,下标从1开始 */  
  81.                 int id = resultSet.getInt(1);  
  82.                 String name = resultSet.getString("NAME");  
  83.                 System.out.println("id:"+id+" name:"+name);  
  84.             }  
  85.         } catch (SQLException e) {  
  86.             e.printStackTrace();  
  87.             System.out.println("执行SQL错误!");  
  88.         }  
  89.     }  
  90.       
  91.     public void updateResultSet(){  
  92.         Connection connection = getConnection();  
  93.         try {  
  94.             /* SQL语句执行对象*/  
  95.             Statement statement;  
  96.             String findTableData;  
  97.               
  98.             /* 
  99.              * ResultSet对象:默认的 不可更新,仅有一个向前移动的指针。因此,只能迭代它一次, 并且只能按从第一行到 
  100.              *      最后一行的顺序进行。通过在创建是指定类型参数可以生成可滚动和可更新的 ResultSet对象。 
  101.              */  
  102.             statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  103.             findTableData = "SELECT id,NAME FROM USER";  
  104.               
  105.             /*修改结果集*/  
  106.             ResultSet resultSet = statement.executeQuery(findTableData);  
  107.             resultSet.absolute(1);  
  108.             resultSet.updateString(2, "成龙");  
  109.             resultSet.updateRow();  
  110.             /*删除结果集*/  
  111.             resultSet.deleteRow();  
  112.         } catch (SQLException e) {  
  113.             e.printStackTrace();  
  114.             System.out.println("执行SQL错误!");  
  115.         }  
  116.     }  
  117.       
  118.     public void transaction(){  
  119.         Connection connection = getConnection();  
  120.         try {  
  121.             /*设置自动提交:false关闭自动提交,true开启自动提交,设置为false相当于开始事务*/  
  122.             connection.setAutoCommit(false);  
  123.             /*JDBC根据数据库提供的默认值来设置事务支持及其加锁 
  124.             TRANSACTION_NONE:是Oracle中数据库驱动对事务处理的默认值,即不支持事务操作,所以需要在程序中手动进行设置。 
  125.             TRANSACTION_READ_UNCOMMITTED:适用于只涉及到数据库的查询操作; 
  126.             TRANSACTION_READ_COMMITTED:适用于数据查询远多于更新的操作; 
  127.             TRANSACTION_REPEATABLE_READ:适用于更新操作较多; 
  128.             TRANSACTION_SERIALIZABLE:适用于数据一致性要求更高的场合,由于涉及到表加锁,因此会对程序运行效率产生较大的影响。 
  129.             */  
  130.             connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);  
  131.             /*提交事务*/  
  132.             connection.commit();  
  133.         } catch (SQLException e) {  
  134.             System.out.println("交事务失败!");  
  135.             try {  
  136.                 connection.rollback();  
  137.             } catch (SQLException e1) {  
  138.                 System.out.println("关闭事务失败!");  
  139.             }  
  140.         }  
  141.     }  
  142.       
  143.     public void findStoredProcedure(){  
  144. //      Connection connection = getConnection();  
  145. //      try {  
  146. //          /* 存储过程执行对象  */  
  147. //          CallableStatement prepareCall = connection.prepareCall("{call findUser}");  
  148. //      } catch (SQLException e) {  
  149. //          System.out.println("执行存储过程错误!");  
  150. //      }  
  151.     }  
  152.       
  153.     public static void main(String[] args) {  
  154.         DataBase dataBase = new DataBase();  
  155. //      dataBase.createTable();  
  156. //      dataBase.inserTableData();  
  157. //      dataBase.findTableData();  
  158. //      dataBase.updateResultSet();  
  159.         dataBase.transaction();  
  160.     }  

 

 借鉴博文:百度百科

JAVA学习:JDBC连接DB2数据库(1) 在优快云潜了这么久,今天终于决定开始写一点东西了,慵懒的脚算是迈出第一步了,希望自己坚持。 JAVA项目做了这么长时间,数据库的连接一直没有仔细研究过。项目中因为这部分都是封在包里的,自己并没有机会去写,甚至连看都看不到。趁着最近比较闲,自己好好的练习一下。以下这一段蓝字部分是从网上拷来的,DB2的几种连接方式:  DBC 驱动程序体系结构分为四种类型:Type1,Type2,Type3,Typ 阅读详情

相关推荐

KingbaseES JDBC 深度实战指南(上):从驱动选型到连接管理,夯实国产数据库交互基础

《KingbaseES数据库JDBC开发指南》摘要:本文系统介绍了KingbaseES数据库与Java应用的JDBC交互技术。主要内容包括:1)JDBC标准接口与KingbaseES驱动实现,涵盖核心接口功能;2)驱动包选型与版本管理,针对不同JDK版本提供Maven配置方案;3)两种连接方式详解:DriverManager基础连接和DataSource连接池方案;4)URL特殊字符处理及JNDI集成方法;5)资源关闭规范与try-with-resources最佳实践。文章特别强调国产数据库适配中的典型问题

稻草人 1万+

MyBatis学习笔记(一) —— MyBatis简介

mybatis简介

程序猿杰哥的博客 408

openGauss如何使用JDBC及源码编译

JDBC 是 Java DataBase Connectivity 的缩写,它是 Java 程序访问的标准接口。JDBC 接口是 Java 标准库自带的,具体的 JDBC 驱动是由数据库厂商提供的,JDBC 驱动也是由 Java 语言编写的,为一个 jar 包,真正实现 JDBC 接口中的类。openGauss 数据库源自 postgres,openGauss JDBC 以JDBC Driver 42.2.5 为基准,适配 openGauss 数据库,增加新特性。

renxyz的专栏 1467

Spring Boot技术体系庞杂,刚入行的程序员如何快速上手?

Spring Boot不用多说,是咱们Java程序员必须熟练掌握的基本技能。工作上它让配置、代码编写、部署和监控都更简单,面试时互联网企业招聘对于Spring Boot这个系统开发的首选框架也是考察的比较严苛,如果你不是刚入行,只是停留在会用的阶段,那是远远不够的。

Javatutouhouduan的博客 365

用Python实现一个简单的远程桌面服务端和客户端

本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行

Hi20240217的博客 1666

基于浏览器插件的拼多多买家订单导出方法

基于浏览器插件的拼多多买家订单导出方法

2501_93542170的博客 1733

mybatis(基本介绍)

mybatis之基本介绍mybatisORM 简介 mybatis   MyBatis 本是 apache 的一个开源项目 Ibatis,2010年这个项目由 apache software foundation 迁移到了google code,并且改名为 MyBatis 。2013年11月迁移到 Github。   Ibatis 一词来源于"internet"和"abatis"的组合,是一个基于Java 的持久层框架。Ibatis 提供的持久层框架包括 SQL Mapps 和 Data Access Ob

faramita_of_mine的博客 322

B站充电视频下载器(需配合会员Cookie使用,仅供学习交流,Python)

这个程序是一个用于下载B站充电视频的工具,依赖于用户提供的会员Cookies。

qq_40753021的博客 2万+

Mybatis

2.MyBatis什么是MyBatis?MyBatis是一款优秀的,用于简化JDBC的开发。MyBatis本是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。官网:https://mybatis.org/mybatis-3/zh/index.html。

2202_76041221的博客 44

麒麟V10 ARM环境离线部署MySQL:从依赖缺失到服务自启的完整避坑指南

本文详细介绍了在麒麟V10 ARM环境下离线部署MySQL的完整流程,包括依赖缺失解决方案、目录配置、服务自启设置及性能调优。特别针对国产操作系统和ARM架构的兼容性问题,提供了实用的避坑指南和优化建议,帮助用户高效完成MySQL部署与维护。

weixin_28741413的博客 409

告别手动解析!用这个Qt库轻松处理Cat 21/62等18种Asterix航空数据

本文介绍了基于Qt框架的高效Asterix报文解析库,帮助开发者轻松处理Cat 21/62等18种航空数据。该库通过协议抽象化、多维度API设计和跨平台支持,解决了手动解析的复杂性和易错问题,显著提升开发效率和系统可靠性。

weixin_42529366的博客 208

挑战一周带你构建Spring Boot完整知识体系!

Spring Boot不用多说,是咱们Java程序员必须熟练掌握的基本技能。工作上它让配置、代码编写、部署和监控都更简单,面试时互联网企业招聘对于Spring Boot这个系统开发的首选框架也是考察的比较严苛,如果你不是刚入行,只是停留在会用的阶段,那是远远不够的。

Javatutouhouduan的博客 452

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 484

java jdbc 连接db2

/**了解基础情况**/ 对于Java程序员而言,DB2 提供了两种应用程序编程接口(API):JDBC 和 SQLJ。 JDBC:   JDBC 驱动程序分为旧的/CLI 驱动程序和新的通用 JDBC 驱动程序(Universal JDBC Driver)。   JDBC 是一个与供应商无关的动态 SQL 接口,该接口通过标准化的 Java 方法向您的应用程序提供数据访问。   J

3084

[VCS]VCS dump fsdb的精细化控制

本文介绍了VCS FSDB波形dump的精细化控制方法。主要内容包括:1)基本dump方式;2)通过$fsdbDumpoff排除特定层次;3)使用$fsdbDumpvars选择性dump指定模块;4)运行时动态控制dump开关;5)通过文件管理排除列表($fsdbDumpoffFile或自定义读取);6)层次控制策略(剪除整棵树或仅当前层)。这些方法可有效控制波形文件大小,提高仿真效率。

元直的博客 1035

手把手教你学Simulink——四开关 Buck‑Boost(FSBB)变换器的无缝模式切换仿真

本文详细介绍了四开关Buck-Boost(FSBB)变换器的Simulink仿真方法,重点解决模式切换时的直通风险和输出电压波动问题。通过统一电压PI控制、迟滞比较模式仲裁(Buck/Boost/Pass-Through)和200ns死区设计,实现了Vin从26V到22V变化时Vout稳定在12V±0.15V。关键步骤包括:搭建功率级电路、Stateflow模式判断、PI控制器输出占空比映射(Buck模式D≈Vo/Vin,Boost模式D≈1-Vo/Vin),以及带死区的PWM信号分配。仿真验证了切换过程中

MHD0815的博客 117

db2 jdbc 连接池_【转】java jdbc连接db2

/**了解基础情况**/对于Java程序员而言,DB2 提供了两种应用程序编程接口(API):JDBC 和 SQLJ。JDBC:JDBC 驱动程序分为旧的/CLI 驱动程序和新的通用 JDBC 驱动程序(Universal JDBC Driver)。JDBC 是一个与供应商无关的动态 SQL 接口,该接口通过标准化的 Java 方法向您的应用程序提供数据访问。JDBC 类似于 DB2 CLI,因为...

weixin_39767322的博客 372

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

什么是openGauss-connector-JDBC

openGauss-connector-JDBC就是提供给用户通过Java语言访问数据库的应用程序接口。用户可以使用openGauss官网提供的jar包,也可以自行构建jar包以使用JDBC操作数据库。

m0_61937892的博客 928

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JDBC使用及源码编译

1. JDBC简介 JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。 JDBC接口是Java标准库自带的,具体的JDBC驱动是由数据库厂商提供的,JDBC驱动也是由Java语言编写的,为一个jar包,真正实现JDBC接口中的类。 openGauss数据库源自postgres,openGauss JDBC以PostgreSQL JDBC Driver 42.2.5为基准,适配openGauss数据库,增加新特性。

weixin_53596073的博客 2204

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java中的JDBC编程

进入网站以后在搜索栏搜索MySQL,然后选择适合自己MySQL的版本的驱动包(MySQL是什么版本,驱动包就选择什么版本。如MySQL是5版本,驱动包就选择5版本的;MySQL是8版本,驱动包就选择8版本的)虽然这样确实是让用户自己输入了,但是这样不安全。在这种代码下,用户有很大的空间对数据库进行别的操作且这种写法不太优雅。是否可能让用户输入要修改的代码呢?将驱动包放进一个项目中。

m0_68814541的博客 138

Java JDBC中,MySQL字段类型到JAVA类型的转换

转载自:https://www.cnblogs.com/waterystone/p/6226356.html 1. 概述   在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案。 2. 类型映射    java.sql.Types定义了常用数据库(MySQL、Oracle、DB2等)所用到的数据类型,官名也...

ZhangYaohui专栏 5577

Steam Deck Tools 风险指南:VLV0100 内核内存操作、EC 风扇控制与 CPU/GPU 频率调节的安全边界

**Steam Deck Tools(Windows 平台下的 Steam Deck 工具套件)通过直接操作内核物理内存来接管 EC(Embedded Controller,嵌入式控制器)并调节风扇转速、TDP、CPU/GPU 频率等参数。本篇以仓库官方 [docs/risks.md](https://link.gitcode.com/i/e2a1f7c794418f6d2acd6a4fd7eeb

gitblog_00687的博客 632

MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换

一、概述在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案。二、映射类型java.sql.Types定义了常用数据库(MySQL、Oracle、DB2等)所用到的数据类型,官名也叫JDBC类型。每个数据库产品的数据类型定义各不相同,但都有JDBC类型与之对应,如MySQL的BIGINT-->JDBC的BIGINT...

weixin_35319666的博客 594
上一篇: HTML 标签集合--源自技术
下一篇: JDBC事务控制管理
MyJava_Dx
博客等级 码龄11年 1粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值