第十七章 数据库操作
数据库基础 和JDBC概论和常用类和接口就不过多的说了 直接来到 数据库的操作 一开始是在数据库中插入了四个类型 两个int 两个varchar类型 再分别插入 名字 序号 号码 性别 然后再在java中操作增删改查 这几个操作 全部代码如下
package 第十七章;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.cj.jdbc.Driver;
public class MysqlDemo1 {
Connection connection;
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
MysqlDemo1 mysqldemo1 = new MysqlDemo1();//new对象 调用方法
mysqldemo1.getConnection();
System.out.println("查询人员数据,结果为:");
mysqldemo1.selectAll();
System.out.println("新增人员数据,结果为:");
mysqldemo1.add(11, "lanyangyang"," 17923412644","nan");
mysqldemo1.add(12, "meiyangyang"," 17977556644","nv");
mysqldemo1.add(13, "feiyangyang"," 11971236644","nan");
mysqldemo1.selectAll();
System.out.println("查询182开头的数据,结果为:");
mysqldemo1.obscure();//查询课程表中的数据
System.out.println("修改指定5位置上的电话号码");
mysqldemo1.update(5,"13124235300");//修改该位置的数据
mysqldemo1.selectAll();
System.out.println("查询性别为nan的数据");
mysqldemo1.man("nan");
System.out.println("修改指定10位置上的名字");
mysqldemo1.updatedate(10,"dashuaige");//修改该位置的数据
mysqldemo1.selectAll();
System.out.println("查询179开头的数据,结果为:");
mysqldemo1.obscure1();//查询课程表中的数据
mysqldemo1.selectAll();
System.out.println("删除课程11,12,13");
mysqldemo1.delete("11");//删除指定位置的数据
mysqldemo1.delete("12");//删除指定位置的数据
mysqldemo1.delete("13");//删除指定位置的数据
mysqldemo1.selectAll();
System.out.println("查询性别为woman的数据");
mysqldemo1.man("nv");
}
public void woman(String name ) throws SQLException {//查询性别为女的数据
PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");
preparedstatement.setString(1, name);
ResultSet resultSet =preparedstatement.executeQuery() ;
while(resultSet.next()) {
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name"));
System.out.println(resultSet.getString("tel"));
System.out.println(resultSet.getString("sex"));
}
preparedstatement.close();
}
public void delete(String id) throws SQLException {//删除指定位置上的数据
PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");
preparedStatement.setString(1, id);//
//第四步 :执行SQL语句
preparedStatement.executeUpdate();
//第六步关闭接连释放资源
preparedStatement.close();
}
public void obscure1() throws SQLException {//查询号码为179开头的号码
PreparedStatement preparedstatement=connection.prepareStatement("select*from sudent where tel like'179%';");
ResultSet resultSet = preparedstatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e
//第五步:遍历结果集
while(resultSet.next()) {
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name")+" ");
System.out.println(resultSet.getString("tel")+" ");
System.out.println(resultSet.getString("sex")+" ");
}
preparedstatement.close();
}
public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据
PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=? where id=? ; ");
preparedstatement.setString(1, name);
preparedstatement.setInt(2, id);
//第四步: 执行SOL语句
preparedstatement.executeUpdate();
//第六步: 关闭连接释放资源
preparedstatement.close();
}
public void man(String name ) throws SQLException {//查询性别为男的数据
PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");
preparedstatement.setString(1, name);
ResultSet resultSet =preparedstatement.executeQuery() ;
while(resultSet.next()) {
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name"));
System.out.println(resultSet.getString("tel"));
System.out.println(resultSet.getString("sex"));
}
preparedstatement.close();
}
public void update(int id,String tel) throws SQLException {//修改指定位置上的号码
PreparedStatement preparedstatement =connection.prepareStatement("update sudent set tel=? where id=? ; ");//修改语句
preparedstatement.setString(1, tel);//tel 电话
preparedstatement.setInt(2, id);//id 序号
//第四步: 执行SOL语句
preparedstatement.executeUpdate();
//第六步: 关闭连接释放资源
preparedstatement.close();
}
public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据
PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句
ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e
//第五步:遍历结果集
while(resultSet.next()) {使用while循环来遍历表中四个类型
System.out.print(resultSet.getInt("id")+" ");//id 序号
System.out.println(resultSet.getString("name"));//name 名字
System.out.println(resultSet.getString("tel"));//tel //电话
System.out.println(resultSet.getString("sex"));//sex //性别
}
}
public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据
PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据
preparedStatement.setInt(1, id);//添加id 序号
preparedStatement.setString(2,name);//添加name//名字
preparedStatement.setString(3,tel);//添加电话
preparedStatement.setString(4,sex);//添加性别
preparedStatement.executeUpdate();
//第六步关闭接连释放资源
preparedStatement.close();
}
public void getConnection () throws SQLException{//注册驱动 连接mysql数据库 并遍历出表中的数据
//第一步注册驱动
DriverManager.registerDriver(new Driver());//注册驱动
//第二步获取连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器 指定数据库和账号密码
}
public void selectAll() throws SQLException {//查询类 查询数据表中的数据
//第三步:获取statement对象
PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句
//第四步:执行SQL语句返回结果集
ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 新增修改删除都是使用另一种executeUpdate
//第五步:遍历结果集
while(resultSet.next()) {//while循环数据库中的四个类型 id name tel sex 分别是 序列 名字 电话号码 和性别
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name"));
System.out.println(resultSet.getString("tel"));
System.out.println(resultSet.getString("sex"));
}
//第六步:关闭连接释放资源
resultSet.close();//关闭连接释放资源
preparedStatement.close();
}
public void close() throws SQLException {
connection.close();//最后关闭连接释放资源
}
}
全部代码如上所示 接下来是详细的讲解
连接数据库
主要是分为六个部分
第一步注册驱动
第二步获取连接
第三步:获取statement对象
第四步:执行SQL语句返回结果集
第五步:遍历结果集
第六步:关闭连接释放资源
然后呢 代码和注解如下
public void getConnection () throws SQLException{//注册驱动 连接mysql数据库 并遍历出表中的数据
//第一步注册驱动
DriverManager.registerDriver(new Driver());//注册驱动
//第二步获取连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器 指定数据库和账号密码
}
public void selectAll() throws SQLException {//查询类 查询数据表中的数据
//第三步:获取statement对象
PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句
//第四步:执行SQL语句返回结果集
ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 新增修改删除都是使用另一种executeUpdate
//第五步:遍历结果集
while(resultSet.next()) {//while循环数据库中的四个类型 id name tel sex 分别是 序列 名字 电话号码 和性别
System.out.print(resultSet.getInt("id")+" ");
System.out.println(resultSet.getString("name"));
System.out.println(resultSet.getString("tel"));
System.out.println(resultSet.getString("sex"));
}
//第六步:关闭连接释放资源
resultSet.close();//关闭连接释放资源
preparedStatement.close();
}
以上代码是 让java连接数据 然后遍历出指定的表中的内容 然后再主函数中new一个对象然后调用该方法就可以输出表中的内容
模糊查询
再是使用mysql数据库中的模糊查询 达到输入开头的号码如:182来查询号码182开头的号码的员工
代码如下
public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据
PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句
ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e
//第五步:遍历结果集
while(resultSet.next()) {使用while循环来遍历表中四个类型
System.out.print(resultSet.getInt("id")+" ");//id 序号
System.out.println(resultSet.getString("name"));//name 名字
System.out.println(resultSet.getString("tel"));//tel //电话
System.out.println(resultSet.getString("sex"));//sex //性别
}
}
然后再主函数中调用该方法就可以打印输出了
增删改
增删改都是使用mysql数据库中的语句
主要如下 代码注解
删除
public void delete(String id) throws SQLException {//删除指定位置上的数据
PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");
preparedStatement.setString(1, id);//
//第四步 :执行SQL语句
preparedStatement.executeUpdate();
//第六步关闭接连释放资源
preparedStatement.close();
}
修改
public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据
PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=? where id=? ; ");
preparedstatement.setString(1, name);
preparedstatement.setInt(2, id);
//第四步: 执行SOL语句
preparedstatement.executeUpdate();
//第六步: 关闭连接释放资源
preparedstatement.close();
}
添加
public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据
PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据
preparedStatement.setInt(1, id);//添加id 序号
preparedStatement.setString(2,name);//添加name//名字
preparedStatement.setString(3,tel);//添加电话
preparedStatement.setString(4,sex);//添加性别
preparedStatement.executeUpdate();
//第六步关闭接连释放资源
preparedStatement.close();
}
然后再在主函数中调用就好了
相关文章:
第十七章 数据库操作
数据库基础 和JDBC概论和常用类和接口就不过多的说了 直接来到 数据库的操作 一开始是在数据库中插入了四个类型 两个int 两个varchar类型 再分别插入 名字 序号 号码 性别 然后再在java中操作增删改查 这几个操作 全部代码如下 package 第十七章; import j…...

RTI-DDS代码分析使用介绍
DDS(Data Distribution Service数据分发服务)是对象管理组织OMG的有关分布式实时系统中数据发布的规范。 DDS规范采用了发布/订阅体系结构,但对实时性要求提供更好的支持。DDS是以数据为中心的发布/订阅通信模型。 以下工程基于rti_connext_dds-7.2.0 hello_world.…...
ant-design-vue 3 a-table保留选中状态
业务需求需要保留选中状态 <a-table class"satistic-table" :row-selection"{ selectedRowKeys: selectedRowKeys, onSelect:onSelect,onSelectAll:onSelectAll }" :row-key"(row)>{ return row.customerId}" :columns"columns"…...
golang 工程组件:grpc-gateway option自定义http规则
option自定义http规则和http body响应 简介 本篇接上文 golang 工程组件:grpc-gateway 环境安装默认网关测试 默认网关配置终究是难用,本篇介绍一下proto里采用option自定义http规则以及让网关返回http响应而不是我们定义的grpc响应 option定义http…...

亚马逊添加购物车和收藏有什么区别
亚马逊的添加购物车和收藏是两个不同的功能,它们在用户行为和用途上有明显的区别: 1、添加购物车(Add to Cart): 当用户点击"添加到购物车"按钮时,所选商品将被放入他们的购物车,而…...

JAVA-编程基础-11-03-java IO 字节流
Lison <dreamlison163.com>, v1.0.0, 2023.05.07 JAVA-编程基础-11-03-java IO 字节流 文章目录 JAVA-编程基础-11-03-java IO 字节流字节输出流(OutputStream)FileOutputStream类**FileOutputStrea 的构造方法**使用文件名创建FileOutputStream…...

python之Cp、Cpk、Pp、Ppk
目录 1、Cp、Cpk、Pp、Ppk 2、python计算 1、Cp、Cpk、Pp、Ppk Cp Process Capability Ratio 可被译为“过程能力指数” Cpk Process Capability K Ratio 可被译为“过程能力K指数” Pp Process Performance Ratio 可被译为“过程绩效指数” Ppk Process Performance K Ra…...

统信uos 1030 企业版 安装.net core环境
安装.net core步骤 添加密钥和包存储库 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-mic…...

2023/10/23学习记录
1.VS2019中sln对应解决方案 修改sln的文件名,对应的解决方案名称也会变化。 2.如何修改生成的exe文件名呢? 属性--->杂项--->(名称) 3.这是任务管理器,这里红色部分显示的是“这是文件描述”。 当通过属性查看详细信息的时…...

flask入门(四)前后端数据传输
文章目录 1、flask后端接收来自前端的数据1)如果前端提交的方法为POST2)如果前段提交的方法是GET 2、flask后端向前端传数据3、案例参考文献 1、flask后端接收来自前端的数据 1)如果前端提交的方法为POST 后端接收时的代码: xx…...
JS——垃圾回收的原理
引言 JavaScript是一种高级的、解释型的编程语言,广泛应用于网页开发和移动应用开发中。在JavaScript中,内存管理是一个重要的话题,而垃圾回收就是内存管理的一部分。本文将介绍JavaScript垃圾回收的原理,并提供一些示例代码来帮助…...

Spring Cloud Gateway 路由构建器的源码分析
Spring Cloud Gateway 路由构建器的源码分析 文章目录 1. 路由构建器的入口2. 创建路由规则3. 设置路由规则和属性4. 路由过滤器的设置5. 构建和获取路由规则:6. 实例化路由构建器:8. 路由构建器的源码分析8.1 RouteLocator接口8.2 RouteLocatorBuilder…...
IT行业哪个方向比较好就业?
IT行业哪个方向比较好就业? IT行业里,哪些方向更好就业,这是一个很常见也很重要的问题。不同的IT方向有不同的技能要求、就业前景和发展空间,因此需要根据自己的兴趣、能力和目标来选择合适的方向。 软件开发与工程:软件开发是…...
uniapp中nvue页面使用fixed后,数据更改不更新到该视图。
解决方案:position: fixed;定位改成position: absolute; 记录一下,遇到这个贼离谱的问题,uniapp项目里的nvue页面因为要弄个引导蒙版,所以使用了fixed定位,点击蒙版关闭,加了this.$forceUpdate()也不行&am…...

力扣第55题 跳跃游戏 c++ 贪心 + 覆盖 加暴力超时参考
题目 55. 跳跃游戏 中等 相关标签 贪心 数组 动态规划 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true &…...

系列十四、Redis的集群(一)
一、是什么 1.1、概述 由于数据量过大,单个master-slave模式难以承担,当出现master节点故障的一瞬间,哨兵重新选举新的master节点之前,这一小段时间将会导致Redis服务不可用,因此需要对多个master-slave主从复制集进行…...
红帽认证 | RHCE考试包括哪些内容?
Red Hat Certified Engineer(RHCE)考试是一项面向企业级系统管理员的认证考试,是认证Linux系统管理员技能的一种方式。 RHCE证书是Linux管理员领域中最受欢迎和最受认可的证书之一。 那RHCE考试都有哪些内容呢,一起来看看吧&…...

ASPICE标准快速掌握「3.1. 实践示例」
实践示例 本章内容是最重要的,建议慢下来跟着博主的思路一步一步前进 1. 示例背景说明 假设我们现在是一个Tier1的车窗控制软件开发商,我们给OEM提供软件解决方案 1.1. 本过程目标 根据客户、上级部门、安全团队与质量团队等提出的要求,本项目要求SYS.1过程达到ASPICE过…...

pytorch 训练可视化
pytorch 训练可视化 1.from torch.utils.tensorboard 1.from torch.utils.tensorboard from torch.utils.tensorboard import SummaryWriter在最新版本的pytorch中官方提供了tensorboard的api。以下是官方教程的链接 https://pytorch.org/tutorials/intermediate/tensorboard…...
webgis开发参考资料
一、ArcGIS相关 1、ArcGIS for Server 10.3.X 新型紧凑型缓存的解读和应用 http://zhihu.geoscene.cn/article/1038 2、arcgis server 紧促(bundle)格式缓存文件的读取 https://blog.csdn.net/abc553226713/article/details/8668839 3、ArcGIS 10.0紧…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...