用Java编写sql

1.概念

通过Java代码操作mysql数据库

数据库编程,是需要数据库服务器,提供一些API,供程序员调用的

2.安装

2.1下载

在程序中操作mysql需要先安装mysql的驱动包 

并且要把驱动包引入到项目中

在中央仓库可以下载到驱动包(mvnrepository.com)

2.2jar如何引入项目中?

1.先把jar复制到当前项目的目录中

复制刚刚下载的那个jar包如何到刚刚的lib目录选中ctrl v粘贴

2.把这个目录标记成“库”

此时准备工作已经完成,可以开始编写代码了

3.编写代码

3.1.创建java类

3.2.创建Datasource

Datasource:描述:“数据源头”==>数据库服务器所在位置

Datasource可能有多个,选择javax.sql的

public class demo1 {public static void main(String[] args) {//1.创建datasourceDataSource dataSource = new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl();// 向下转型}}

3.3URL

url是给jdbc操作mysql使用的

url形式:

Datasource光写url只是能找到mysql服务器了

但是还得认证(用户名,密码)

3.4建立和数据库服务器之间的连接

连接好了之后,才能进行后续的请求-响应 交互

要注意包的选择

//2。建立和数据库服务器之间的连接Connection connection = dataSource.getConnection();

问题:

解决方法:

3.5构造sql

 //3.构造sqlString sql = "insert into student values(1, ' 张三')";PreparedStatement statement = connection.prepareStatement(sql);

3.6把sql发给服务器

返回值是一个整数,,表示影响到的行数

int n = statement.executeUpdate();

      

3.7执行完毕之后,关闭连接,释放资源

程序通过代码和服务器进行通信,是需要消耗一定的硬件和软件资源的

在程序结束时,就需要告知服务器,释放这些资源

释放顺序:后获取到的资源先释放

         statement.close();connection.close();

4.插入,删除,修改代码

插入:

String sql = "insert into student values(1, ' 张三')";
PreparedStatement statement = connection.prepareStatement(sql);

删除:

String sql = "delete from student where id = 1";
PreparedStatement statement = connection.prepareStatement(sql);

修改:

String sql = "update student set name = '张三' where id = 100";
PreparedStatement statement = connection.prepareStatement(sql);

5.插入操作如何不写死

        String sql = "insert into student values(1, ' 张三')";PreparedStatement statement = connection.prepareStatement(sql);

这里的张三写死了,我们不好去更改

6.代码

public class demo1 {public static void main(String[] args) throws SQLException {Scanner scanner = new Scanner(System.in);System.out.println("请输入学号 :");int id = scanner.nextInt();System.out.println("请输入姓名 :");String name = scanner.next();//1.创建datasourceDataSource dataSource = new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl();// 向下转型((MysqlDataSource) dataSource).setUrl("root");((MysqlDataSource) dataSource).setPassword("kkkk");//2.建立和数据库服务器之间的连接Connection connection = dataSource.getConnection();//3.构造sqlString sql = "insert into student values(?, ?)";//String sql = "delete from student where id = 1";//String sql = "update student set name = '张三' where id = 100";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2, name);//打印sql看效果System.out.println("sql = "+ statement);//4.把sql发给服务器int n = statement.executeUpdate();System.out.println("n = " + n);//5.释放资源,关闭连接statement.close();connection.close();}}

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

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

相关文章

在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思?

在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思? 在 Ubuntu(或其他基于 GNOME 文件管理器的 Linux 发行版)中,文件或文件夹的右下角出现一把“锁”标志,通常表示 你当前的用户没有该文件/文件夹的写…

Redis数据结构-List列表

1.List列表 列表类型适用于存储多个有序的字符串(这里的有序指的是强调数据排列顺序的重要,不是升序降序的意思),列表中的每个字符串称为元素(element),一个列表最多可以存储2^32-1个元素。在R…

《论负载均衡技术在Web系统中的应用》审题技巧 - 系统架构设计师

软考论文写作框架 一、考点概述 本题考点主要围绕“负载均衡技术在Web系统中的应用”展开,旨在考察考生对负载均衡技术的理解、应用及项目管理经验。负载均衡技术是提升Web系统性能的关键手段,通过合理分配和分散系统负载,确保多个操作单元能够高效协同工作,从而提升系统…

Linux实操——在服务器上直接从百度网盘下载(/上传)文件

Linux Linux实操——在服务器上直接从百度网盘下载(/上传)文件 文章目录 Linux前言一、下载并安装bypy工具二、认证并授权网盘账号三、将所需文件转移至目的文件夹下四、下载文件五、上传文件六、更换绑定的百度云盘账户 前言 最近收到一批很大的数据&…

报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat)

报错报错DescriptionResourcePathLocationType The default superclass,“jakarta.servlet.http.HttpServlet”, according to the project’s Dynamic Web Module facet version (5.0), was not found on the Java Build Path. 解决办法: 根据错误信息&#xff0…

【UI设计——陕西红富士苹果海报分享】

陕西红富士苹果海报设计分享 为大家带来一款陕西红富士苹果的宣传海报设计。 海报以柔和的粉色为背景,营造出温馨的氛围。画面下方展示了色泽红润、形态饱满的红富士苹果,既有完整的果实,也有切开的剖面,直观呈现其诱人外观。 上…

题解 | 牛客周赛82 Java ABCDEF

目录 题目地址 做题情况 A 题 B 题 C 题 D 题 E 题 F 题 牛客竞赛主页 题目地址 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 做题情况 A 题 判断字符串第一个字符和第三个字符是否相等 import java.io.*; import java.math.*; import java.u…

vulkanscenegraph显示倾斜模型(5)-视景器准备

前言 本文在接着往下讨论视景器准备相关步骤。Vulkan相比opengl更底层,其提供了更底层的硬件控制、更高的性能以及更好的多线程支持,VSG 通过封装 Vulkan 的复杂性,提供了更简单易用的接口,同时保留了 Vulkan 的高性能和灵活性。它简化了 Vulkan 的初始化、渲染管线配置、资…

基金 word-->pdf图片模糊的解决方法

1. 首先需要Adobe或福昕等pdf阅读器。 2. word中 [文件]--[打印],其中打印机选择pdf阅读器,例如此处我选择福昕阅读器。 3. 选择 [打印机属性]--[编辑]--[图像],将所有的采样、压缩均设置为 关闭。点击[另存为],保存为 基金报告…

基于RKNN的嵌入式深度学习开发(2)

上一个章节我们介绍的RKNN模型的模型转换和模型的推理,这一章节我们将介绍模型的量化和评估部分。 2.3 RKNN模型的量化 量化就是将浮点转换为定点运算的过程,或者训练后由rknn来量化。量化模型使用较低精度(如int8/uint8/int16)保…

单一职责原则(设计模式)

目录 问题: 定义: 解决: 方式 1:使用策略模式 示例:用户管理 方式 2:使用装饰者模式 示例:用户操作 方式 3:使用责任链模式 示例:用户操作链 总结 推荐 问题&a…

Java 8 到 Java 17 主要新特性

Java 8 到 Java 17 是 Java 语言的多个重要版本,其中每个版本都引入了新的特性和改进。下面是 Java 8 到 Java 17 中主要的新特性概览。 Java 8 新特性 1. Lambda 表达式 Lambda 表达式是 Java 8 的一个重要特性,它使得 Java 支持函数式编程&#xff…

Qt 中signals和slots、Q_SIGNAL和Q_LOT、Q_SIGNALS和Q_SLOTS的区别和使用

Qt 中signals和slots、Q_SIGNAL和Q_SLOT、Q_SIGNALS和Q_SLOTS的区别和使用 1.signals和slots 信号和槽函数需要在类的声明中明确声明。信号需要使用signals关键字,而槽函数可以使用slots关键字(虽然在现代Qt中,槽函数也可以直接作为普通成员…

【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器- 2.1 Chrome架构:仅仅打开了1个页面,为什么有4个进程?

https://time.geekbang.org/column/article/113513 2.1 Chrome架构:仅仅打开了1个页面,为什么有4个进程? 前置:基于Chrome浏览器学习浏览器的工作原理 原因: 因为 Chrome、微软的 Edge 以及国内的大部分主流浏览器…

智能图像处理平台:图像处理配置类

这里我们先修改一下依赖&#xff0c;不用JavaCV&#xff0c;用openCV。 导入依赖&#xff1a; <!-- JavaCV 依赖&#xff0c;用于图像和视频处理 --> <!-- <dependency>--> <!-- <groupId>org.bytedeco</groupId>--> &l…

【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南

欢迎来到ZyyOvO的博客✨&#xff0c;一个关于探索技术的角落&#xff0c;记录学习的点滴&#x1f4d6;&#xff0c;分享实用的技巧&#x1f6e0;️&#xff0c;偶尔还有一些奇思妙想&#x1f4a1; 本文由ZyyOvO原创✍️&#xff0c;感谢支持❤️&#xff01;请尊重原创&#x1…

夜天之书 #106 Apache 软件基金会如何投票选举?

近期若干开源组织进行换届选举。在此期间&#xff0c;拥有投票权的成员往往会热烈讨论&#xff0c;提名新成员候选人和治理团队的候选人。虽然讨论是容易进行的&#xff0c;但是实际的投票流程和运作方式&#xff0c;在一个成员众多的组织中&#xff0c;可能会有不少成员并不清…

【蓝桥】大小写转换

1、islower()和isupper() 1.1 islower()函数 定义&#xff1a;用于判断一个字符是否为小写字母&#xff08;即 ‘a’ 到 ‘z’&#xff09; 1.2 isupper()函数 定义&#xff1a;用于判断一个字符是否为大写字母&#xff08;即 ‘A’ 到 ‘Z’&#xff09; 1.3 基础用法 #incl…

DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略

DualPipe简介 今天是DeepSeek开源周的第四天&#xff0c;官方开源了一种新型并行计算优化策略——DualPipe。 其实大家阅读过Deepseek-V3技术报告的同学&#xff0c;对这个技术并不陌生。 开源地址&#xff1a;https://github.com/deepseek-ai/DualPipe 核心亮点 DualPipe&…

2025.3.1面试总结

昨天面试了一家做路由器的公司&#xff0c;问的问题还是挺多的&#xff0c;比较全面&#xff0c;也有一定的深度&#xff0c;比较注重底层原理的实现。 下面是具体问题&#xff1a; 岗位&#xff1a;嵌入式软件工程师 自我介绍&#xff1b;&#xfeff;项目介绍&#xff0c;…