java数据库操作

数据库类分析

java.sql.DriverManager:

        驱动管理器静态类,类加载时会自动加载配置文件中jdbc.drivers配置的驱动,所有数据库驱动类加载时会调用DriverManager.registerDriver注册自己到DriverManager中,如下代码,为oracle驱动类中的一段静态代码(类加载时执行):

static {if (defaultDriver == null) {defaultDriver = new oracle.jdbc.OracleDriver();DriverManager.registerDriver(defaultDriver);}
}

        常用函数有:

static void registerDriver(java.sql.Driver driver):供驱动程序注册自己
static Connection getConnection(String url,String user, String password):取数据库连接,根据url找到合适的数据库连接。

 javax.sql.DataSource:

        数据库数据源工厂,驱动程序管理器的另一个选择,构造时需传入url地址、用户名、密码等,常用函数有:

Connection getConnection():获取数据库连接
Connection getConnection(String username, String password):获取数据库连接

        常用数据库源包括:

oracle.jdbc.pool.OracleDataSource:oracle数据库源
com.mysql.cj.jdbc.MysqlDataSource:mysql数据库源
dm.jdbc.driver.DmdbDataSource:达梦数据库源

oracle.jdbc.pool.OracleOCIConnectionPool:oracle数据库连接池
com.mysql.cj.jdbc.MysqlConnectionPoolDataSource:mysql数据库连接池
dm.jdbc.driver.DmdbConnectionPoolDataSource:达梦数据库连接池
com.zaxxer.hikari.HikariDataSource:SpringBoot默认数据库连接池,世界上最快的数据库连接池

java.sql.Driver:

        数据库驱动程序接口类,需要实现数据库驱动的类都需要基础该接口,一般不会直接使用,常用的数据库驱动类有:

oracle.jdbc.driver.OracleDriver:oracle数据库驱动
com.mysql.cj.jdbc.Driver:mysql数据库驱动
dm.jdbc.driver.DmDriver:达梦数据库驱动

java.sql.Connection:连接,比较常用。
java.sql.Statement:会话,比较常用。
java.sql.ResultSet:结果集,比较常用。

常用数据库驱动

数据库jar包驱动
oraclecom.oracle.ojdbc6oracle.jdbc.OracleDriver
mysqlmysql.mysql-connector-javacom.mysql.cj.jdbc.Driver

数据库访问示例

1.通过DriverManager访问数据库:

public static void main( String[] args ) throws SQLException {Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.7.214:2881/mysql", "root", "");Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("select 1 a");while (resultSet.next()){String ename = resultSet.getString("a");System.out.println(ename);}
}

2.通过DataSource访问数据库:

public static void main( String[] args ) throws SQLException {MysqlDataSource dataSource= new MysqlDataSource();dataSource.setURL("jdbc:mysql://192.168.7.214:2881/mysql");dataSource.setUser("root");dataSource.setPassword("");;Connection connection = dataSource.getConnection();Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("select 1 a");while (resultSet.next()){String ename = resultSet.getString("a");System.out.println(ename);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目开发中安全问题及解决方法-----用户标识不能从客户端获取

服务端直接使用了客户端传过来的用户标识,导致了安全问题: GetMapping("wrong") public String wrong(RequestParam("userId") Long userId) {return "当前用户Id:" userId; }开发同学没有正确认识接口或服务…

Git学习笔记(第1章):Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce 和…

常见的系统性能指标:QPS、TPS

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…

华为设备NAT的配置

实现内网外网地址转换 静态转换 AR1: sys int g0/0/0 ip add 192.168.10.254 24 int g0/0/1 ip add 22.33.44.55 24 //静态转换 nat static global 22.33.44.56 inside 192.168.10.1 动态转换 最多有两台主机同时访问外网 AR1: sys int g0/0/0 ip add…

MySQL5.7之grant

官网地址:MySQL :: MySQL 5.7 Reference Manual :: 13.7.1.4 GRANT Statement 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Mysql5.7参考手册 / ... / 赠款声明 13.7.1.4 GRANT Statement GRAN…

享元模式介绍

目录 一、享元模式介绍 1.1 享元模式定义 1.2 享元模式原理 1.2.1 享元模式类图 1.2.2 模式角色说明 1.2.3 示例代码 二、享元模式的应用 2.1 需求说明 2.2 需求实现 2.2.1 类图 2.2.2 具体实现 2.2.2.1 抽象享元类 2.2.2.2 共享享元类-白色棋子 2.2.2.3 共享享元…

计算机网络——运输层(1)暨小程送书

计算机网络——运输层(1)暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 运输层概述两个主要协议运输层和网络层的关系网络层运输层总结 多路复用与多路分解多路复用多路分解不同的技术实现时分复用(TDM)频分复…

[STM32F407ZET6] GPIO

GPIO模式 F4的GPIO功能比F1的功能更多一些, 但是整体框架一样. F4的输出配置和F1的不同, F4的配置后, 施密特触发器将会开启, 还会对输入寄存器进行采样读取. F1的配置后, 推挽输出将会关闭施密特触发器, 开漏模式读取会读输入寄存器, 推挽模式会读取输出寄存器的值. 输出(全…

Java毕业设计-基于jsp+servlet的家用电器购物商城管理系统-第87期

获取源码资料,请移步从戎源码网:从戎源码网_专业的计算机毕业设计网站 项目介绍 基于jspservlet的家用电器购物商城管理系统:前端 jsp、jquery、layui,后端 servlet、jdbc,角色分为管理员、用户;集成商品…

分布式Erlang/OTP(学习笔记)(一)

Erlang分布式基础 假设你在机器A和机器B上各跑着一个Simple Cache应用的实例。要是在机器A的缓存上插人一个键/值对之后,从机器B上也可以访问,那可就好了。显然,要达到这个目的,机器A必须以某种方式将相关信息告知给机器B。传递该…

macOS向ntfs格式的移动硬盘写数据

最近想把日常拍摄的照片从SD存储卡中转存到闲置的移动硬盘中,但是转存的时候发现,mac只能读我硬盘里的东西,无法将数据写入到移动硬盘中,也无法删除移动硬盘的数据。后来在网上查了许久资料,终于可实现mac对移动硬盘写…

修改iview的表格table展开的默认icon和样式

修改前 修改后 修改内容 .title_label_list .ivu-icon-ios-add{font-size: 26px;color: #888888; } .title_label_list .ivu-icon-ios-add:hover{color: #11AAAA; } .title_label_list .ivu-icon-ios-add:before {content: "\F341"; } .title_label_list .ivu-icon-…

Vue3/Vue2实现文章内容中多个“关键词“标记高亮显示

一、实现效果 下拉列表高亮展示关键词 二、实现思路 安装 “vue-word-highlighter” ,这是一个 支持 Vue3 和 Vue2,不过 Vue2 版本是通过 vue-demi 构建的 三、案例代码 package.json "vue-word-highlighter": "^1.0.4"Vue3 …

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书步骤说明

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书的方法与前面Centos7上(centos7 使用openssl 配置证书服务器并颁发证书(史上最详细版本)_centos phpinfo显示的openssl配置项为/etc/pki/tls/openssl.c-CSDN博客)是一…

蓝桥杯Java组备赛--算法训练 kAc给糖果你吃

题目 问题描述 kAc有n堆糖果,每堆有A[i]个。 kAc说你只能拿m次糖果,聪明的你当然想要拿最多的糖果来吃啦啦啦~ //第二天,kAc问你还想吃糖果么?(嘿嘿嘿)说着眼角路出奇怪的微笑...输入格式 第一行两个数字…

【计算机组成与体系结构Ⅱ】多Cache一致性的模拟分析(实验)

实验八:多Cache一致性的模拟分析 一、实验目的 1:加深对多 Cache 一致性的理解。 2:进一步掌握解决多 Cache一致性的目录协议和监听协议的基本思想。 3:掌握在各种情况下, 目录协议和监听协议是如何工作的&#xf…

跨Android、iOS、鸿蒙多平台框架ArkUI-X

ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API,就能在Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。 一…

spring项目中自定义钩子函数实现常用功能

在Spring项目中,自定义钩子函数(Hook Function)是一种常见的方式,用于实现一些常用功能或在特定生命周期事件发生时执行一些操作。以下是一些在Spring项目中常见的功能和如何通过自定义钩子函数来实现: 日志记录&#…

16.7 基于递归神经网络的分层多楼多层室内定位

文献来源:西交利物浦大学 Elesawi A E A, Kim K S. Hierarchical multi-building and multi-floor indoor localization based on recurrent neural networks[C]//2021 Ninth International Symposium on Computing and Networking Workshops (CANDARW). IEEE, 202…

MySQL优化之SQL调优策略

首先以一张思维导图从全局上给大家分享以下几种SQL优化策略,再详细讲解 1、避免使用SELECT * 在阿里的编码规范中也强制了数据库查询不能使用SELECT *,因为SELECT *方式走的都是全表扫描,导致的结果就是查询效率非常低下,其原因为…