程序与数据库连接工具与案例代码

article/2025/8/30 23:19:25

文章目录

  • 前言
  • JDBC访问数据库流程
  • JDBC访问数据库的步骤
    • 1、开始JDBC操作前要将驱动放到WEB-INF的lib目录下
    • 2、程序中首先导包import java.sql.*
    • 3、执行查询操作
      • ①、加载正确的数据库驱动程序
      • ②、定义所要连接数据库的地址
      • ③、建立与数据库的连接
      • ④、创建语句对象
      • ⑤、声明SQL语句
      • ⑥、对查询结果进行分析
      • ⑦、关闭打开的资源(按定义的逆序关闭)
  • JDBC的优缺点
    • 使用JDBC具有以下优点:
    • 使用JDBC具有如下缺点:
  • DBUtil.java代码及注解
  • 数据库本地地址和远程地址


前言

提示:在这里先说下 DBUtil.java 文件:

JDBC能完成三件事:
同一个数据库建立连接
向数据库发送SQL语句
处理数据库返回结果
它是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

JDBC访问数据库流程

在这里插入图片描述

JDBC访问数据库的步骤

1、开始JDBC操作前要将驱动放到WEB-INF的lib目录下

2、程序中首先导包import java.sql.*

3、执行查询操作

①、加载正确的数据库驱动程序

每种数据库驱动程序的名字和数据库URL的写法都不同

Class.forName("oracle.jdbc.driver.OracleDriver"); //使用Oracle的JDBC驱动程序
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //使用SQL Server的JDBC驱动程序
Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); //使用DB2的JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver"); //使用MySql的JDBC驱动程序

关于使用使用MySql的JDBC驱动程序,如果连不上可以试试下面这个驱动
在 mysql和 jdbc中间加个【.cj】

driver="com.mysql.cj.jdbc.Driver";

②、定义所要连接数据库的地址

此处 dbname为数据库的名字

String url = "jdbc:mysql://localhost:3306/dbname";

③、建立与数据库的连接

Connection con=DriverManager.getConnection(url,"root", "root");

Connection接口连接MySQL数据库

Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");

Connection接口连接ORACLE数据库

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password");

④、创建语句对象

String sql="select * from food where material like ?"
PreparedStatement  pstmt=conn.prepareStatement(sql);
//带?的SQL语句一定要在执行之前给?赋值,char和varchar都是setString替换?,
//对于int型数据可以使用setInt替换?
pstmt.setString(1, "%鸡蛋%");//参数1表示第一个?

⑤、声明SQL语句

将该语句通过Statement对象提交给服务器进行执行

ResultSet rs=ps.executeQuery();
//注意,此时executeQuery()不带参数

⑥、对查询结果进行分析

while(rs.next()){String name =rs.getString("columName");//根据列名获取字段值String phone =rs.getString(2);//根据列号获取字段值,从1开始数列号System.out.println(name+","+phone);
}

⑦、关闭打开的资源(按定义的逆序关闭)

rs.close();
pstmt.close();
con.close();

JDBC的优缺点

JDBC API 用于连接 Java 应用程序与各种关系数据库。
这使得人们在建立客户/服务器应用程序时,通常把 Java 作为编程语言,把任何一种浏览器作为应用程序的友好界面,把 Internet 或Intranet 作为网络主干,把有关的数据库作为数据库后端。

使用JDBC具有以下优点:

(1)、JDBC API 有利于用户理解。
(2)、JDBC 使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。
(3)、JDBC 支持不同的关系数据库,使得程序的可移植性大大加强。
(4)、JDBC API 是面向对象的,可以让用户把常用的方法封装为一个类以备后用。

使用JDBC具有如下缺点:

(1)、使用 JDBC访问数据记录的速度会受到一定程度的影响。
(2)、JDBC 结构中包含了不同厂商的产品,这就给更改数据源带来了一定的麻烦。

DBUtil.java代码及注解

JavaWeb项目

package dao;import java.sql.DriverManager;
import java.sql.ResultSet;import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;public class DBUtil {private static java.sql.Connection con = null;// 连接对象private static PreparedStatement pstmt = null;// 语句对象private static ResultSet rs = null;  // 结果集对象//连接数据库public static Connection getCon(){//定义所要连接数据库的地址String url = "jdbc:mysql://localhost:3306/00eshop?useUnicode=true&characterEncoding=UTF-8";String user = "root";    //数据库用户名String password = "123456";   //数据库密码try {//加载正确的数据库驱动程序Class.forName("com.mysql.jdbc.Driver");//建立与数据库连接con = DriverManager.getConnection(url, user, password);//System.out.println("--------------"); 出现横线,代表数据库连接上了return (Connection) con;} catch (Exception e) {System.out.println(e);return null;}}//关闭数据库,(避免资源浪费,或者其他数据库来访问)public static void close(ResultSet rs,PreparedStatement ps,Connection con){if (rs != null) {try {rs.close();} catch (Exception e) {System.out.println(e);}}if (ps != null) {try {ps.close();} catch (Exception e) {System.out.println(e);}}if (con != null) {try {con.close();    //关闭打开的资源} catch (Exception e) {System.out.println(e);}}}
}

注解:
在这里插入图片描述

Connection 是个接口,这个 Connection 连接成立后才能把SQL语句往这里面传,先跟数据库建立一个良好的联系
在DBUtil.java类中定义 getCon() 方法创建数据库链接(第16行)

具体说第18 行是什么意思:
String url = "jdbc:mysql://localhost:3306/00eshop?useUnicode=true&characterEncoding=UTF-8";

jdbc:是连接数据库的一种形式
mysql:数据库的类型是mysql
localhost:本地地址,也可以换成:【127.0.0.1】
3306:端口号(默认数据库端口,最好不要改)

这个在Navicat 或 VS Code中可以看到:
在这里插入图片描述
在这里插入图片描述

/ 后面的【00eshop】:是数据库名称
在这里插入图片描述
? 后的【useUnicode=true&characterEncoding=UTF-8】
这些是针对不同的 MySql 版本进行传值


数据库本地地址和远程地址

此报错以一个SSM项目为例:

远程地址:例如MySQL 连接远程数据库(192.168.5.542)
本地地址:localhost
案例:

我曾经运行过一个项目,但是他一直在跑,浏览器一直转圈,Tomcat日志中说连接超时
在这里插入图片描述
一开始我以为是环境配置问题,于是各种检查,重新配置
最后发现是因为用了远程的数据库链接地址与本地数据库导致的
在这里插入图片描述

最后在配置数据库的位置把远程地址改成 localhost本地地址就好了
在这里插入图片描述

//SpringBoot
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hotel?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456
//SSM
<!-- 配置数据源 -->
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db_ebook?useUnicode=true&amp;characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/>
</bean>

http://chatgpt.dhexx.cn/article/n8pLpSqZ.shtml

相关文章

通用数据库连接工具DBeaver

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 by-sa 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/fenzhouzhen7118/article/details/82218044 本人电脑为win10系统。 之前连接数据库都使用navicat…

dbeaver一款全能的数据库连接工具dbeaver

记录一款全能的数据库连接工具dbeaver 特点&#xff1a; 免费、开源、免安装解压即用 当然官网也有商业版本&#xff0c;开源免费版基本够用了 Main web site 官网: https://dbeaver.io Source code 源码: https://github.com/dbeaver/dbeaver 本地下载 https://download.…

数据库连接工具类

数据库连接 概述一、jdbc实验环境搭建 二、Druid连接数据库实验环境搭建 三、Maven连接数据库实验环境搭建 四、mybatis连接数据库实验环境搭建 五、Spring连接数据库六、SSM 概述 什么是JDBC&#xff1a;Java连接数据库 原子性 (Atomicity)、 一致性(Consistency)、隔离性(Is…

正版数据库连接工具,DBeaver的安装与配置使用

之前一直使用的数据库连接工具是Navicat的破解版&#xff0c;相信很多人也和我一样&#xff0c;直到前段时间&#xff0c;发现了一款免费开源的数据库连接软件&#xff0c;使用起来也很方便顺手&#xff0c;那就是DB eaver &#xff0c;今天将安装基础使用的教程分享出来。 DBe…

数据库连接工具---DBeaver

数据库连接工具---DBeaver ☁️前言⭐️下载安装&#x1f34b;下载&#x1f34d;安装 &#x1f3c6;连接Clickhouse✨快捷键 ☁️前言 在工作中使用DataGrip&#xff0c;发现创建Clickhouse表语句设置了字段注释&#xff0c;但是创建完之后&#xff0c;注释消失。发现是客户端…

真牛X!这款通用数据库连接工具DBeaver!可以连接和操作市面所有的数据库!...

来源&#xff1a;https://blog.csdn.net/horses/article/details/89683422在制作《SQL 入门教程》时&#xff0c;接触到了这款非常强大易用的数据库管理和开发工具&#xff1a;DBeaver&#xff0c;也就是上面这个可爱的小河狸。 DBeaver 是一个基于 Java 开发&#xff0c;免费开…

数据库链接工具

安装方式 Navicat 自行百度需要破解 展示效果

除了大家知道的navicat,再介绍两款免费的数据库连接工具

因为navicat如果以前没有navicat的破解版就很难用现在网上的免费连接数据库工具了&#xff0c;所以&#xff0c;在这里我推荐大家使用两款免费的连接数据库工具。 第一款是开源免费的DBeaver 这是我上班&#xff0c;项目经理也可以说是我师傅教我的&#xff0c;毕竟免费&…

发现极为好用的数据库连接工具,基本上包含所有数据库DBeaver

1.DBeaver 是一个基于 Java 开发&#xff0c;免费开源的通用数据库管理和开发工具&#xff0c;使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。 由于 DBeaver 基于 Java 开发&#xff0c;可以运行在各种操作系统上&#xff0c;包括&#xff1a;Windows、Lin…

数据库连接工具sqldbx、dbvisualizer使用笔记

近来需要使用新的数据库连接工具连接多种数据库&#xff0c;现在此做一个简单的总结记录&#xff0c;以备后续查看。 一、sqldbx 1、简介 SqlDbx 是简单易用的数据库连接工具&#xff0c;SQL编辑&#xff0c;SQL查询工具。语句规则突出&#xff0c;智能化&#xff0c;自动完…

MySQL数据库的多种连接方式及工具

大家好呀&#xff01;我是猿童学&#x1f435;&#xff0c;最近在学习Mysql数据库&#xff0c;给初学者分享一些知识&#xff0c;也是学习的总结&#xff0c;关注我将会不断地更新数据库知识&#xff0c;也欢迎大家指点一二&#x1f339;。 目录 一、MySQl命令行客户端 二、C…

几款数据库连接工具

几款数据库连接工具 文章目录 几款数据库连接工具1. 前言2. Navicat3. DBeaver4. DataGrip5. phpMyAdmin 1. 前言 我目前使用sqlite3和mysql数据库比较多&#xff0c;所以对数据库客户端的需求主要是支持多平台&#xff0c;至少可以连接管理这两个数据库&#xff0c;目前我找到…

两款免费、好用的数据库连接工具

一、Navicate Navicat是一套快速、可靠的数据库管理工具&#xff0c;专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的&#xff0c;让你可以以安全并且简单的方式创建、组织、访问并…

令人拍案叫绝的Wasserstein GAN

转载&#xff1a;https://zhuanlan.zhihu.com/p/25071913 在GAN的相关研究如火如荼甚至可以说是泛滥的今天&#xff0c;一篇新鲜出炉的arXiv论文《Wasserstein GAN》却在Reddit的Machine Learning频道火了&#xff0c;连Goodfellow都在帖子里和大家热烈讨论&#xff0c;这篇论文…

基于图学习的多视图聚类

现有的多视图聚类算法&#xff1a; 1.基于图的多视图聚类 2.多视图谱聚类 3.协同训练风格聚类 4.多视图子空间聚类 框架&#xff1a; 一般流程&#xff1a; 1.构造数据矩阵G&#xff0c;其中每一个元素gij表示数据点xi和xj之间的相似度&#xff1b; 2.计算图拉普拉斯矩…

可视化语音分析:深度对比Wavenet、t-SNE和PCA等算法

这篇文章基于 GitHub 中探索音频数据集的项目。本文列举并对比了一些有趣的算法&#xff0c;例如 Wavenet、UMAP、t-SNE、MFCCs 以及 PCA。此外&#xff0c;本文还展示了如何在 Python 中使用 Librosa 和 Tensorflow 来实现它们&#xff0c;并用 HTML、Javascript 和 CCS 展示可…

VTK笔记-图形相关-布尔运算-vtkBooleanOperationPolyDataFilter类

问题 群里有人问&#xff1a;我从左边的模型经过vtkClipPolyData的裁剪得到右边的模型。但裁剪完之后&#xff0c;里面是空心的&#xff0c;想问要如何操作才能把裁剪路径面给补上。   我理解的是&#xff0c;他想做将裁剪后的空腔与原来的vtkPolyData相连&#xff1b;类似下…

适用于Unity和Unreal Engine的Asm.js和WebGL

本文是Microsoft的Web开发系列的一部分。 感谢您支持使SitePoint成为可能的合作伙伴。 Unity和Epic的虚幻引擎&#xff08;Unreal Engine&#xff09;是游戏开发人员经常使用的流行中间件工具&#xff0c;不仅限于创建以可执行文件形式运行的已编译应用程序。 Unity以前有一个…

北冥神功与六脉神剑(一)

北冥神功与六脉神剑 【言念及此&#xff0c;登时心下坦然&#xff0c;默默祷祝&#xff1a;“神仙姊姊&#xff0c;你吩咐下来的事&#xff0c;段誉当然一定遵行不误&#xff0c;但愿你法力无边&#xff0c;逍遥派弟子早已个个无疾而终。”战战兢兢的打开绸包&#xff0c;里面…

测地线距离 matlab,网格测地线算法(Geodesics in Heat)附源码

测地线又称为大地线,可以定义为空间曲面上两点的局部最短路径。测地线具有广泛的应用,例如在工业上测地线最短的性质就意味着最优最省,在航海和航空中,轮船和飞机的运行路线就是测地线。[Crane et al. 2013]提出了利用热运动方程来计算网格测地线的方法,可以想象一下,当一…