第十七章 数据库操作
数据库基础 和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紧…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
