【MySQL】JDBC的基础使用

系列文章目录

第一章 数据库基础
第二章 数据库基本操作
第三章数据库约束
第四章表的设计
第五章查询进阶
第六章索引和事务


文章目录

  • 系列文章目录
  • 前言
  • 一、JDBC基本概念
  • 二、JDBC的准备工作
  • 三、JDBC-Demo
    • 小结
  • 四、JDBC进阶写法
  • 总结


前言

在前面对MySQL已经有了基本的认知,但是我们是要应用到开发中的,因此需要与Java相结合。即MySQL在Java中的应用。


一、JDBC基本概念

在Java中,使用JDBC这样的技术来操作MySQL。MySQL中提供了一系列的API供程序猿调用。jdbc是Java标准库所提供的,因此是自带的。但是如果要使用JDBC操作MySQL,就需要下载并导入MySQL的驱动包。

二、JDBC的准备工作

以我的MySQL版本(8.0)为例,下载地址为 MySQL驱动包
在下载的驱动包是以.jar结尾的文件。导入到lib包中,即存放第三方库的目录。
在这里插入图片描述

三、JDBC-Demo

在使用jdbc之前,还需要准备好数据库和数据表。虽然jdbc能够进行建表操作,但是一般都是提前创建好的。
1、设置数据库
DataSource:数据源,即要操作的数据库、数据是在哪里,因此在MySQL中需要设定好要访问的数据库名字、访问数据库的用户名和密码。

//使用MySQLDataSource 实现向上转型。
DataSource dataSource = new MysqlDataSource();

url:唯一资源定位符。通过url访问到数据库服务器,进一步进行增删改查。
url包括这么几个信息:IP地址、端口号、数据库名称、编码格式、加密通信(useSSL)


jdbc:mysql://127.0.0.1:3306/blog01?characterEncoding=utf8&useSSL=false

url并不需要强行记忆,使用的时候copy即可。
在jdbc中同样要获取用户名和密码

        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("密码");

2、设置数据源之后,就需要与数据库建立连接,使用Connection类的方法建立连接。

Connection connection = dataSource.getConnection();

3、虽然是通过Java操作数据库,但实际核心还是SQL,只不过是把SQL嵌入到Java中了。因此需要构造SQL语句并发送到数据库服务器上。
在下面我们是构造了一个字符串的SQL语句,通过PreparedStatement的预编译功能对SQL进行解析和校验。

Scanner scanner = new Scanner(System.in);System.out.println("请输入id:");int id = scanner.nextInt();System.out.println("请输入姓名:");String name = scanner.next();//构造一个sql语句String sql = "insert into student2 values(" + id + ",'" + name + "')";PreparedStatement preparedStatement=connection.prepareStatement(sql);

preparedStatement类对SQL进行校验,此外它的两种方法为executeUpdate和executeQuery应用场景不同。executeUpdate使用于增删改操作,而executeQuery适用于select操作。
int n 返回的是发生数据改变的行数。

		int n = preparedStatement.executeUpdate(sql);System.out.println(n);//释放资源preparedStatement.close();connection.close();

小结

在本demo中,涉及到了三个类 DataSource、Connection、PreparedStatement
功能分别为设置数据源、建立连接、创建SQL语句对象。

四、JDBC进阶写法

在jdbc-demo中,我们可以发现这种写法可读性是比较差的。以下面的 sql对象为例,name是字符串类型,因此需要加上’ ’ 而使用拼接而成的字符串又显得晦涩。

String sql = "insert into student2 values(" + id + ",'" + name + "')";

因此,我们有了下面的进阶写法。使用(?,?)进行占位符以备后续代码做出内容替换。
使用preparedStatement预编译对数据进行替换。

Scanner scanner = new Scanner(System.in);System.out.print("请输入id:");int ids = scanner.nextInt();//System.out.println(id);System.out.print("请输入姓名:");String names = scanner.next();
String sql = "insert into student2 values (?,?) ";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setInt(1,ids);preparedStatement.setString(2,names);

总结

JDBC是Java连接和使用数据库的关键技术,它的重复性很高,仍然需要多加练习。
源码JDBC的基础使用

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

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

相关文章

状态dp或滑动窗口

前言&#xff1a;这个题目可以用状态dp来做&#xff0c;其实还有一个思路&#xff0c;类似滑动窗口&#xff0c;如果有遇到第二个0&#xff0c;左指针加一 class Solution { public:int longestSubarray(vector<int>& nums) {int n nums.size();vector<vector<…

2024年【起重信号司索工(建筑特殊工种)】考试题及起重信号司索工(建筑特殊工种)免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重信号司索工(建筑特殊工种)考试题是安全生产模拟考试一点通总题库中生成的一套起重信号司索工(建筑特殊工种)免费试题&#xff0c;安全生产模拟考试一点通上起重信号司索工(建筑特殊工种)作业手机同步练习。2024年…

洛谷 P4516 [JSOI2018] 潜入行动

题目来源于&#xff1a;洛谷 题目本质&#xff1a;背包&#xff0c;树形dp 解题思路&#xff1a; 假设当前合并两个背包f[u][a][p1][q1] 和f[v][b][p2][q2] &#xff0c;其中 v 是 u 的儿子。考虑合并后的f[u][ab][p3][q3],q3 是合并后点 u 是否被监听&#xff0c;有两种情况…

使用Java往Geoserver发布tif图层和shp图层

1. Maven依赖 栅格文件对应Tif文件 (即: 栅格就是tif) 矢量文件对应shp文件(即: 矢量就是shp) 注: 有的依赖可能在中央仓库及一些镜像仓库找不到需要手动指定仓库, 在依赖最下方 <!-- 中文转拼音工具类 --><dependency><groupId>com.belerweb</groupId&g…

简单步骤获取IP地址SSL 证书

在网络安全中&#xff0c;SSL证书在保护用户浏览器和Web服务器之间交换的敏感信息方面发挥着至关重要的作用。 但是&#xff0c;如果您不仅想保护域名&#xff0c;还想保护特定的IP地址&#xff0c;该怎么办&#xff1f;您可以为IP地址获取SSL证书吗&#xff1f; 简短的回答是…

.NET COER+CONSUL微服务项目在CENTOS环境下的部署实践

一、整体的环境安装与部署 1.1、DOCKER环境的部署 1.1.1 安装DOCKER yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast && yu…

2024年【甘肃省安全员C证】考试题及甘肃省安全员C证考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 甘肃省安全员C证考试题考前必练&#xff01;安全生产模拟考试一点通每个月更新甘肃省安全员C证考试总结题目及答案&#xff01;多做几遍&#xff0c;其实通过甘肃省安全员C证模拟试题很简单。 1、【多选题】《安全生产…

企业要部署多点组网应该怎么做?

企业在进行扩张后&#xff0c;往往有建立多点组网的需求。本文将详细介绍企业怎样实现多点组网&#xff0c;以便有需要的用户进行了解和选择。 企业想要实现企业多点组网时&#xff0c;首先需要进行全面的网络规划和设计。这包括评估公司当前的网络架构、各个分支机构的地理位置…

AOP+ 自定义注解 +SpringElExpress自研缓存组件

AOP 自定义注解 SpringElExpress自研缓存组件 背景前置知识改造代码 背景 思考下这段代码&#xff0c;想想项目中是不是到处存在 先查缓存&#xff0c;缓存里面有&#xff0c;直接返回&#xff1b;缓存没有&#xff0c;查数据库&#xff0c;并更新到缓存 思考&#xff1a;如何…

区块链知识体系fisco-bcos实战

文章目录 一、区块链发展概述及类型和特征1.1 区块链的概念1.2 区块链的起源1.3 区块链的发展历程1.4 区块链的类型和特征 二、区块链的常见技术架构2.1 技术架构2.2 核心技术 三、区块链的常见应用3.1 生态环境监测3.2 医疗废弃物追踪解决3.3 区块链在电子政务领域的应用3.4 在…

mac安装ipa包【金铲铲为例】

mac安装ipa包 安装PlayCover 链接&#xff1a;https://github.com/PlayCover/PlayCover 1、点最新Releases 2、cmd ↓&#xff0c;拉到最下面下载dmg 3、安装 图标拖拽到Applications里 IPA下载 以金铲铲为例&#xff0c;良心砸壳包站点&#xff0c;有能力可以支持一下…

Modbus-TCP——Libmodbus安装和使用(Ubuntu22.04)

1、简介 Modbus是一种通信协议&#xff0c;广泛用于工业自动化和过程控制领域&#xff0c;允许不同设备之间进行数据交换。libmodbus是一个用于 Modbus 协议的开源库&#xff0c;主要用于开发和实现 Modbus 协议的客户端和服务器应用程序。libmodbus 以 C 语言编写&#xff0c…

Gartner发布2024年终端和工作空间安全成熟度曲线:24项相关技术发展和应用状况及趋势

由于攻击者使用人工智能来增强网络钓鱼和终端攻击&#xff0c;企业需要高级安全措施来阻止入侵行为。此技术成熟度曲线可帮助安全和风险管理领导者识别可增强终端和工作空间保护的技术。 需要知道什么 网络安全创新层出不穷&#xff0c;但区分真正的进步与短暂的趋势却很困难。…

66 IPV4/6 OSPFV2/3 实操

一 网络括谱图 二 IPV6 一 华为IPV6地址的配置思路 1 全局上开启IPV6功能 # ipv6 # 2 在指定的接口上配置IPV6地址上的接口上配置IPV6地址 ipv6 enable 3 在接口上配置IPV6地址 ipv6 address 2001:1::254/64 脚本 # interface GigabitEthernet0/0/1 ipv6 enable ip add…

Ajax基础案例

接口文档 欢迎使用 - AJAX阶段 地区查询 图解 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

libLZMA库iOS18平台编译

1.下载xz源码: 使用autogen.sh生成configure文件 2.生成makefile rm -rf ./build/iOS && mkdir -p ./build/iOS && cd ./build/iOS && ../../configure --host=arm-apple-darwin64 --prefix=`pwd`/Frameworks/lzma CC="xcrun -sdk iphoneos cl…

熟悉Labview工具用

目录复制 目录 0.0&#xff1a;快捷键0.1&#xff1a;全局非图标显示0.2&#xff1a;小技巧&#xff1a;图片导入为程序1.2&#xff1a;事件结构1.2.0&#xff1a;超时分支&#xff1a;当事件结构框左上角设置为1时&#xff0c;单位毫秒&#xff0c;即理解为1ms内没有其他的事件…

ES+FileBeat+Kibana日志采集搭建体验

1.环境准备 需要linux操作系统&#xff0c;并安装了docker环境 此处使用虚拟机演示。&#xff08;虚拟机和docker看参考我之前写的文章&#xff09; VirtualBox安装Oracle Linux 7.9全流程-CSDN博客 VirtualBox上的Oracle Linux虚拟机安装Docker全流程-CSDN博客 简单演示搭建ES…

Linux_Shell三剑客grep,awk,sed-08

三剑客的概述&#xff1a; awk、grep、sed是linux操作文本的三大利器&#xff0c;合称文本三剑客&#xff0c;也是必须掌握的linux命令之一。三者的功能都是处理文本&#xff0c;但侧重点各不相同&#xff0c;其中属awk功能最强大&#xff0c;但也最复杂。grep更适合单纯的查找…

好用又便宜的平替苹果笔推荐:2024开学季盘点五款高性价比电容笔

​随着网络学习的不断发展&#xff0c;电容笔是一种常见的数字书写工具&#xff0c;受到许多学生党广泛欢迎&#xff0c;因为它可以与平板电脑完美配对&#xff0c;满足用户在平板上的书写、绘画等需求。可是原装笔的价格略贵&#xff0c;平替苹果笔的品牌又很多&#xff0c;很…