当前位置: 首页 > article >正文

【MySQL篇】使用Java操作MySQL实现数据交互

目录JDBC的认识安装MySQL驱动包下载完成后将包导入IDEA实现代码1.创建数据源2.和数据库服务器建立连接?3.构造操作数据库的 sql 语句.4.执行SQL语句5.释放资源?完整代码InsertSelectUpdateJDBC的认识JDBC即Java Database Connectivityjava数据库连接。是一种用于执行SQL语句的Java API它是Java中的数据库连接规范。它为Java开发人员操作数据库提供了一个标准的API可以为多种关系数据库提供统一访问由于每个厂商的数据库的API都不同为了进行统一管理Java提供了一套标准的API接口标准每个数据库都得安装这套标准才能在Java中使用这套标准就是JDBC;JDBC的作用可以在Java中对数据库进行增删改查操作安装MySQL驱动包只要安装了JDK就自带了JDBCJDBC是Java标准库中提供的但是Java要想操作数据库就得下载它的数据库驱动包得适配到Java中中央仓库https://mvnrepository.com/中央仓库有大佬将Java中日常开发中可能会使用到的第三方库安装包统一收集在一个网站中这个网站就叫做“中央仓库”因为我使用的数据库是5.7版本的属于旧版本下载旧版本的驱动包即可随便哪个版本都行只需前面的大版本对应你的MySQL版本就行下载jar文件下载完成后将包导入IDEA1在项目中创建一个新目录2将jar包复制粘贴到lib包中3右击.jar文件 选择 点击OK4添加完成实现代码1.创建数据源//1.创建数据源 DataSource dataSource new MysqlDataSource(); ((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/jdbc?characterEncodingutf8useSSLfalse); ((MysqlDataSource)dataSource).setUser(root); ((MysqlDataSource)dataSource).setPassword(123456);这里设置了账号密码使用的有连接方式客户端-服务器之间的通信有俩种有连接这里JDBC使用的就是这种需要双方同意才能进行操作。例如打电话A打B的电话B必须接收才能相互通信无连接类似发短信不需要对方同意也可以直接发送2.和数据库服务器建立连接//2.和数据库服务器建立连接 Connection connection dataSource.getConnection();这块不要导错包否则会出现错误在getConnection()这个方法的可能会连接失败 有以下几点可能1.数据库服务器没有正确启动2.url写错了3.用户名写错了4.密码填错了5.网络断开…3.构造操作数据库的 sql 语句.//3.构造操作数据库语句 System.out.println(请输入学号: ); int id scanner.nextInt(); System.out.println(请输入姓名: ); String name scanner.next(); String sql insert into student values(?, ?); PreparedStatement preparedStatement connection.prepareStatement(sql); preparedStatement.setInt(1, id); preparedStatement.setString(2, name);prepareStatement(sql)方法将 SQL 语句传递给数据库准备执行。PreparedStatement提供了一种预编译的方式确保 SQL 语句能更高效地执行并且可以有效防止 SQL 注入。在sql语句中使用到这种占位符preparedStatement可以设置sql语句对应的占位符位置并且下标是从1开始?4.执行SQL语句//4.执行SQL语句 int n preparedStatement.executeUpdate(); System.out.println(n n);有俩种方法executeQuery() 方法执行后返回单个结果集的通常用于select语句executeUpdate()方法返回值是一个整数指示受影响的行数通常用于update、insert、delete语句5.释放资源//5.释放资源 preparedStatement.close(); connection.close();对应前面创建的资源都得手动释放掉以免不必要的浪费完整代码Insertpublic class Demo { public static void main(String[] args) throws SQLException { Scanner scanner new Scanner(System.in); //1.创建数据源 DataSource dataSource new MysqlDataSource(); ((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/jdbc?characterEncodingutf8useSSLfalse); ((MysqlDataSource)dataSource).setUser(root); ((MysqlDataSource)dataSource).setPassword(123456); //2.和数据库服务器建立连接 Connection connection dataSource.getConnection(); //3.构造操作数据库语句 System.out.println(请输入学号: ); int id scanner.nextInt(); System.out.println(请输入姓名: ); String name scanner.next(); String sql insert into student values(?, ?); PreparedStatement preparedStatement connection.prepareStatement(sql); preparedStatement.setInt(1, id); preparedStatement.setString(2, name); //4.执行SQL语句 int n preparedStatement.executeUpdate(); System.out.println(n n); //5.释放资源 preparedStatement.close(); connection.close(); } }Selectpublic static void main(String[] args) throws SQLException { Scanner scanner new Scanner(System.in); //1.创建数据源 DataSource dataSource new MysqlDataSource(); ((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/jdbc?characterEncodingutf8useSSLfalse); ((MysqlDataSource)dataSource).setUser(root); ((MysqlDataSource)dataSource).setPassword(123456); //2.和数据库服务器建立连接 Connection connection dataSource.getConnection(); //3.构造操作数据库语句 String sql select * from student; PreparedStatement preparedStatement connection.prepareStatement(sql); //4.执行语句 ResultSet resultSet preparedStatement.executeQuery(); //遍历结果 while (resultSet.next()) { int id resultSet.getInt(id); String name resultSet.getString(name); System.out.println(id id , name name); } //5.资源释放 resultSet.close(); preparedStatement.close();; connection.close(); }ResultSet对象它被称为结果集它代表符合SQL语句条件的所有行并且它通过一套getXXX方法提供了对这些行中数据的访问。ResultSet里的数据一行一行排列每行有多个字段并且有一个记录指针指针所指的数据行叫做当前数据行我们只能来操作当前的数据行。我们如果想要取得某一条记录就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录就应该使用while循环。Updatepublic static void main(String[] args) throws SQLException { Scanner scanner new Scanner(System.in); //1.建立数据源 DataSource dataSource new MysqlDataSource(); ((MysqlDataSource)dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/jdbc?characterEncodingutf8useSSLfalse); ((MysqlDataSource)dataSource).setUser(root); ((MysqlDataSource)dataSource).setPassword(040518); //2.建立连接 Connection connection dataSource.getConnection(); //3.构建sql String sql update student set name wangwu where id 2; PreparedStatement preparedStatement connection.prepareStatement(sql); //4.执行sql int n preparedStatement.executeUpdate(); System.out.println(n n); //5.释放资源 preparedStatement.close(); connection.close(); }

相关文章:

【MySQL篇】使用Java操作MySQL实现数据交互

目录 JDBC的认识: 安装MySQL驱动包: 下载完成后将包导入IDEA 实现代码: 1.创建数据源 2.和数据库服务器建立连接? 3.构造操作数据库的 sql 语句. 4.执行SQL语句 5.释放资源? 完整代码: Insert: Select&a…...

Linux 进程剖析:深入内核源码,揭开进程运作机制

内核是一个模块化、分层的操作系统内核,它充当硬件和用户空间程序之间的桥梁。其架构旨在提供高效、稳定和可扩展的操作系统。内核的核心组件包括:系统调用接口: 应用程序与内核通信的接口。调度程序: 管理进程执行并分配 CPU 时间…...

3步掌握!wvp-GB28181-pro视频监控平台的Docker高效部署实战指南

3步掌握!wvp-GB28181-pro视频监控平台的Docker高效部署实战指南 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro 在当今视频监控系统建设中,复杂的环境配置和繁琐的部署流程常常成为技术落…...

开源项目国际化从0到1构建:多语言适配避坑指南

开源项目国际化从0到1构建:多语言适配避坑指南 【免费下载链接】dnGrep Graphical GREP tool for Windows 项目地址: https://gitcode.com/gh_mirrors/dn/dnGrep 在全球化软件开发中,本地化架构的质量直接决定产品能否跨越语言障碍,触…...

DSM 7.2.2系统Video Station解决方案完全指南

DSM 7.2.2系统Video Station解决方案完全指南 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722 当你升级到群晖DSM 7.2.2系统后,是否发现…...

如何用GPT-SoVITS实现广播级音频合成?揭秘AI语音技术的突破性进展

如何用GPT-SoVITS实现广播级音频合成?揭秘AI语音技术的突破性进展 【免费下载链接】GPT-SoVITS 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS 在数字内容创作领域,音频合成技术正经历着前所未有的变革。GPT-SoVITS作为一款领先…...

5大场景带你掌握微信自动化:从零基础到企业级应用

5大场景带你掌握微信自动化:从零基础到企业级应用 【免费下载链接】WeChatFerry 微信逆向,微信机器人,可接入 ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。Hook WeChat. 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatFerry…...

M3U8视频下载技术全解析:从误区破除到未来演进

M3U8视频下载技术全解析:从误区破除到未来演进 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 开篇:认知重构——打破M3U8下载的三大迷思 在数字内容获取…...

蓝牙协议逆向与跨平台适配:GalaxyBudsClient的开源设备控制技术突破

蓝牙协议逆向与跨平台适配:GalaxyBudsClient的开源设备控制技术突破 【免费下载链接】GalaxyBudsClient Unofficial Galaxy Buds Manager for Windows, macOS, and Linux 项目地址: https://gitcode.com/gh_mirrors/gal/GalaxyBudsClient 引言:跨…...

开源工具提升网盘下载效率:Online-disk-direct-link-download-assistant全场景应用指南

开源工具提升网盘下载效率:Online-disk-direct-link-download-assistant全场景应用指南 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) &#xf…...

前端OFD解析技术:从业务痛点到架构革新的全栈实践

前端OFD解析技术:从业务痛点到架构革新的全栈实践 【免费下载链接】ofd.js 项目地址: https://gitcode.com/gh_mirrors/of/ofd.js 一、电子文档处理的困境与挑战 在数字化转型浪潮中,企业级电子文档处理面临着严峻的技术瓶颈。传统OFD文件解析方…...

PIVlab技术解析与应用指南:从原理到实践的流体速度测量解决方案

PIVlab技术解析与应用指南:从原理到实践的流体速度测量解决方案 【免费下载链接】PIVlab Particle Image Velocimetry for Matlab, official repository 项目地址: https://gitcode.com/gh_mirrors/pi/PIVlab 在流体力学研究与工程应用中,精确测量…...

Tftpd64网络服务工具实战指南:从基础部署到企业级应用全攻略

Tftpd64网络服务工具实战指南:从基础部署到企业级应用全攻略 【免费下载链接】tftpd64 The working repository of the famous TFTP server. 项目地址: https://gitcode.com/gh_mirrors/tf/tftpd64 Tftpd64是一款集成TFTP(Trivial File Transfer …...

突破百度网盘限速的5个秘诀:让Mac下载速度提升10倍的完整指南

突破百度网盘限速的5个秘诀:让Mac下载速度提升10倍的完整指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否经历过这样的场景&…...

重构网盘下载体验:Online-disk-direct-link-download-assistant技术原理与应用实践

重构网盘下载体验:Online-disk-direct-link-download-assistant技术原理与应用实践 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,…...

3个实用方案:Xbox手柄macOS兼容配置与优化指南

3个实用方案:Xbox手柄macOS兼容配置与优化指南 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 作为一名技术顾问,我深知在macOS系统上使用Xbox手柄时可能遇到的各类兼容性问题。从设备无法识别到功…...

WarcraftHelper:经典游戏增强与兼容性解决方案

WarcraftHelper:经典游戏增强与兼容性解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 作为一款承载无数玩家青春记忆的经典RTS游戏…...

【EI复现】梯级水光互补系统最大化可消纳电量期望短期优化调度模型(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

不平衡三相电网下三电平(T型_NPC型)并网逆变器研究(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

基于虚拟同步机(VSG)参数自适应控制的T型三电平逆变器并离网切换模型研究(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

基于积分改进下垂控制功率均分的两台T型三电平逆变器孤岛离网控制研究(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

基于虚拟同步发电机VSG控制两台T型三电平功率均分孤岛离网控制研究(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

【MySQL】RedHat8安装mysql9.1

一、下载安装包 下载地址:MySQL Enterprise Edition Downloads | Oracle MySQL :: MySQL Community Downloads 安装包:mysql-enterprise-9.1.0_el8_x86_64_bundle.tar 官方 安装文档:MySQL Enterprise Edition Installation Guide 二、安装…...

AI时代硬核竞争力:这个数学书单传疯了

诺贝尔奖得主、AI 先驱杰弗里・辛顿(Geoffrey Hinton)曾明确表示,数学、统计学、概率论以及线性代数这类知识永远有价值、不会过时,是应对 AI 技术变革、从事高水平 AI 研究和工程工作的重要基础,远胜于学习易被 AI 取…...

百度网盘提速工具评测:突破下载限制的开源解决方案

百度网盘提速工具评测:突破下载限制的开源解决方案 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download 30秒核心价值速览 🚀 多线程加速:最高支持32线程并行下载…...

3步构建小红书数据备份系统:XHS-Downloader从安装到精通全指南

3步构建小红书数据备份系统:XHS-Downloader从安装到精通全指南 【免费下载链接】XHS-Downloader 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downlo…...

老旧Mac设备升级指南:使用开源工具OpenCore Legacy Patcher实现系统兼容性

老旧Mac设备升级指南:使用开源工具OpenCore Legacy Patcher实现系统兼容性 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您是否拥有一台2012-2015年的Mac设备…...

【MySQL】在MySQL中STR_TO_DATE()以及其他用于日期和时间的转换

1.在MySQL中STR_TO_DATE() 在MySQL中,STR_TO_DATE() 函数用于将字符串转换为日期格式。这个函数非常有用,当你需要将文本数据转换为可由MySQL日期和时间函数处理的格式时。 1.1 语法 STR_TO_DATE() 函数的基本语法如下: STR_TO_DATE(date_str…...

AutoSubs:AI驱动的字幕智能工具效率革命

AutoSubs:AI驱动的字幕智能工具效率革命 【免费下载链接】auto-subs Generate subtitles using OpenAI Whisper in Davinci Resolve editing software. 项目地址: https://gitcode.com/gh_mirrors/au/auto-subs 在数字内容创作领域,字幕制作长期面…...

SENAITE LIMS全攻略:革新实验室管理的开源解决方案

SENAITE LIMS全攻略:革新实验室管理的开源解决方案 【免费下载链接】senaite.lims SENAITE Meta Package 项目地址: https://gitcode.com/gh_mirrors/se/senaite.lims SENAITE LIMS是一款功能强大的开源实验室信息管理系统,提供样本管理、实验结果…...