第十七章 数据库操作
数据库基础 和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紧…...
社区闲置交换
社区闲置交换社区闲置交换...
OpenClaw环境隔离方案:用Docker部署Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF避免依赖冲突
OpenClaw环境隔离方案:用Docker部署Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF避免依赖冲突 1. 为什么需要Docker环境隔离 去年我在本地尝试部署OpenClaw时,最头疼的问题就是Python依赖冲突。当时为了同时运行OpenClaw和一个本地大模型…...
如何突破抖音视频下载限制:douyin-downloader的全方位解决方案
如何突破抖音视频下载限制:douyin-downloader的全方位解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallba…...
JavaScript交互功能实现:StartBootstrap Freelancer 导航栏与滚动效果
JavaScript交互功能实现:StartBootstrap Freelancer 导航栏与滚动效果 【免费下载链接】startbootstrap-freelancer A flat design, one page, MIT licensed Bootstrap portfolio theme created by Start Bootstrap 项目地址: https://gitcode.com/gh_mirrors/st/…...
HelloWord-Keyboard固件编程完全指南:从零掌握机械键盘定制开发
HelloWord-Keyboard固件编程完全指南:从零掌握机械键盘定制开发 【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard 想要打造属于自己的智能机械键盘吗?HelloWord-Keyboard项目为你提供了一个…...
Mojo-Python FFI调用成本黑洞:参数序列化、GIL争用、内存拷贝——3个致命性能断点实时诊断法
第一章:Mojo-Python FFI调用成本黑洞的全局认知Mojo 语言通过 Python 兼容层提供无缝互操作能力,但其底层 FFI(Foreign Function Interface)调用并非零开销。每一次从 Mojo 调用 Python 函数、或从 Python 回调 Mojo 可调用对象&a…...
别再纠结选哪个了!手把手教你根据项目需求选对Go框架:Gin、Kratos还是Zero?
实战指南:如何为你的Go项目精准匹配框架——Gin、Kratos与Zero深度解析 当启动一个新项目时,选择正确的框架往往决定了后续开发的顺畅程度。面对Gin、Kratos和Zero这三个主流Go框架,很多开发者会陷入选择困难。本文将带你从实际项目需求出发&…...
OpenClaw夜间值守:Qwen2.5-VL-7B实现服务器监控截图报警
OpenClaw夜间值守:Qwen2.5-VL-7B实现服务器监控截图报警 1. 为什么需要夜间值守方案 凌晨三点,我的手机突然响起刺耳的警报声——服务器CPU负载飙升至98%。当我手忙脚乱地远程连接服务器时,业务已经中断了15分钟。这次事故让我意识到&#…...
3D Hough变换在自动驾驶点云平面检测中的优化实践
1. 3D Hough变换在自动驾驶中的核心价值 当激光雷达扫描周围环境时,会产生数百万个三维空间中的离散点,这就是我们常说的点云数据。想象一下,你站在城市街头,眼前所有物体都被转化为密密麻麻的彩色点,就像星空中的繁星…...
作业2:6位数码管静态显示
文章目录1、数码管显示6个91.1 效果图截屏1.2 代码2、数码管显示2个7(一头一尾)2.1 效果图截屏2.2 代码3、数码管轮播显示6位3.1 效果图截屏3.2 代码4、数码管轮播显示2位4.1 效果图截屏4.2 代码1、数码管显示6个9 1.1 效果图截屏 1.2 代码 #include&l…...
