JDBC---Maven之jdbc连接数据库

news2025/1/11 13:40:58

Maven之jdbc连接数据库

这里需提前将maven环境配置好

链接: Maven环境配置


文章目录

  • Maven之jdbc连接数据库
  • JDBC
  • 创建Maven工程
  • JDBC访问数据库步骤
      • 1.Class.forName()加载驱动
      • 2.DriverManager获取Connection连接
      • 3.创建Statement执行SQL语句
      • 4.返回ResultSet查询结果()
      • 5.释放资源


JDBC

Java Database Connectivity(java语言连接数据库)
JDBC本质----接口
接口都有调用者和实现者
面向接口调用,面向接口写实现类

在这里插入图片描述


创建Maven工程

1.新建Maven工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.仓库中获取mysql的驱动依赖

从https://mvnrepository.com/ 仓库中获取mysql的驱动依赖

  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.29</version>
</dependency>

在这里插入图片描述

JDBC访问数据库步骤

1.Class.forName()加载驱动

 //加载驱动
 Class.forName("com.mysql.jdbc.Driver");

2.DriverManager获取Connection连接

    // 创建连接  有三个参数    第一个url   第二个 user  第三个 password
    // url    : 数据的地址    协议:什么样的数据库:数据库服务器的地址:端口号/数据库名称
    //  user  :  数据库的用户名
    //password : 数据库的密码
    //地址还可以添加参数  &useUnicode=true&characterEncoding=utf-8  为设置字符集为utf-8  专门针对乱码
    //useSSL=false   是否选择加密连接    
//获取connection连接
connection = DriverManager.getConnection(
    "jdbc:mysql://192.168.95.130:3306/jdbcstu",
    "root",
    "root"
);
System.out.println(connection);

3.创建Statement执行SQL语句

/*新增*/
String sql ="insert into master(name,age,gender,yearnum,did) value(?,?,?,?,?)";
String name ="张三";
Integer age =20;
String gender="男";
Integer yearnum=3;
Integer did =1;
//创建preparedStatement---防止SQL注入
preparedStatement =connection.prepareStatement(sql);
preparedStatement.setString(1,name);
preparedStatement.setInt(2,age);
preparedStatement.setString(3,gender);
preparedStatement.setInt(4,yearnum);
preparedStatement.setInt(5,did);
int num = preparedStatement.executeUpdate();
if (num>0){
   System.out.println("新增主人信息成功");
}

在这里插入图片描述

/*修改*/
String sql ="update master set age =? where pid=?";
Integer age = 18;
Integer pid =2;
preparedStatement =connection.prepareStatement(sql);
preparedStatement.setInt(1,age);
preparedStatement.setInt(2,pid);
int num =preparedStatement.executeUpdate();
if (num>0){
 System.out.println("修改主人信息成功");
}

在这里插入图片描述

/*删除*/
String sql="delete from master where pid =?";
preparedStatement =connection.prepareStatement(sql);
Integer pid=4;
preparedStatement.setInt(1,pid);
int num = preparedStatement.executeUpdate();
if (num>0){
System.out.println("删除主人信息成功");
}

在这里插入图片描述

4.返回ResultSet查询结果()

只有执行select语句才有查询结果集

 /*查询*/
String sql ="select pid ,m.name,age,gender,yearnum,d.name,health,love,strain,lytm from master m,dog d where m.did=d.id ";
preparedStatement =connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
System.out.println("\t\t信息表");
System.out.println("编号\t名字\t年龄\t性别\t经验值\t宠物名字\t\t健康值\t亲密度\t品种\t领养时间");
while (resultSet.next()){
System.out.print(resultSet.getInt("pid")+"\t");              System.out.print(resultSet.getString("m.name")+"\t");
System.out.print(resultSet.getInt("age")+"\t");               System.out.print(resultSet.getString("gender")+"\t");               System.out.print(resultSet.getInt("yearnum")+"\t\t");               System.out.print(resultSet.getString("d.name")+"\t\t");
System.out.print(resultSet.getInt("health")+"\t\t");
System.out.print(resultSet.getInt("love")+"\t\t");                System.out.print(resultSet.getString("strain")+"\t\t");
System.out.println(resultSet.getDate("lytm")+"\t");
}

在这里插入图片描述

5.释放资源

if (resultSet!=null){
  try {
    resultSet.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
      }
if (preparedStatement!=null){
  try {
    preparedStatement.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
      }
if (connection!=null){
  try {
    connection.close();
    } catch (SQLException e) {
    e.printStackTrace();
  }
   }

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

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

相关文章

vsmoon靶场实战笔记

vsmoon靶场实战笔记 web打点 信息收集 nmap扫描端口 扫描结果 └─$ nmap -sV -A 192.168.1.106 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-01 12:51 CST Nmap scan report for 192.168.1.106 Host is up (0.00014s latency). Not shown: 986 closed tcp p…

YOLOv5更换骨干网络之 GhostNet

论文地址&#xff1a;https://arxiv.org/abs/1911.11907 代码地址&#xff1a;https://github.com/huawei-noah/ghostnet 由于内存和计算资源有限&#xff0c;在嵌入式设备上部署卷积神经网络&#xff08;CNN&#xff09;很困难。特征图中的冗余是那些成功的神经网络的重要特征…

年度征文 | 回顾2022,展望2023(我难忘的2022,我憧憬的2023)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…

用javascript分类刷leetcode7.双指针(图文视频讲解)

双指针 普通指针&#xff1a;两指针同一方向或不同方向对撞指针&#xff1a;两指针互相靠拢快慢指针&#xff1a;一快一慢 141. 环形链表 (easy) 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再…

LeetCode字符串经典题目(四)

1. LeetCode344. 反转字符串 2. LeetCode541. 反转字符串 II 3. LeetCode剑指 Offer 05. 替换空格 4. LeetCode151. 反转字符串中的单词 5. LeetCode剑指 Offer 58 - II. 左旋转字符串 6. LeetCode28. 找出字符串中第一个匹配项的下标​ 7. LeetCode459. 重复的子字符串​…

Mac内存空间不足如何释放储存空间?深度清理Mac磁盘空间的方法教程

今日coco玛奇朵将分享一些能够释放大量Mac内存空间的方法&#xff0c;以便大家能够优化Mac的运行速度外还能规避由于Mac空间不足而导致安装Ventura时出现的一系列问题。 大家都知道更新Macos都需要预备非常大的内存空间才能进行&#xff0c;当更新完Macos之后都会留下大量的备…

台大应用深度学习笔记

deep learning end-to-end training 1. 神经元 1.1 为什么需要bias&#xff1f; 为了给对应位置一个prior&#xff0c;给它一个初始值&#xff0c;b越大&#xff0c;σ(z)11e−z\sigma(z) \frac{1}{1e^{-z}}σ(z)1e−z1​越大&#xff0c;越趋向于1. 多层神经网络&#xff…

安装Windows和Ubuntu双系统

制作Ubuntu安装盘在Windows上查看磁盘格式 不同的磁盘格式&#xff0c;需要跟BIOS里面不同的引导模式配合来启动操作系统&#xff0c;如下图&#xff1a; 我的电脑是GPT格式&#xff1a; 准备好给Ubuntu的磁盘空间 在Windows系统中&#xff0c;在一个200G的清空数据的磁盘上…

【Flask-Web】基于layui前端模板搭建简易管理系统

1. JavaScript 1.1. 函数 var cars ["Saab", "Volvo", "BMW"]; var txt "string"; var b2new Boolean(1); var x Math.PI; // 返回PI var y Math.sqrt(16); // 返回16的平方根 var num new Number(value); try {adddlert("…

aws eks 理解和使用terrafrom创建eks集群(离线安装provider和module)

参考 使用 Terraform 在 AWS 中国区域实现自动化部署指南系列1使用 Terraform 在 AWS 中国区域实现自动化部署指南系列2https://lonegunmanb.github.io/introduction-terraform/加速 Terraform init terraform 相关概念 terraform是对标aws cloud formation的iac工具&#x…

Redis集群系列十一 —— 故障转移一

故障发现 Redis 集群内节点通过 ping/pong 消息实现节点通信&#xff0c;消息不但可以传播节点槽信息&#xff0c;还可以传播其他状态。当集群中某个节点出现问题时&#xff0c;需要识别出节点是否发生了故障&#xff0c;因此故障发现是通过Gossip 协议来广播自己的状态以及自…

日志系统:WAL和二阶段提交

1. 前言 一条更新语句在执行过程中不仅仅要操作不仅仅是通过数据库的组件(分析器、优化器、执行器、存储引擎等&#xff09;操作表数据还涉及以下内容&#xff1a; 要操作日志系统的redo log、binlog和undo log&#xff0c; 更新操作也不是实时更新到磁盘的而是通过3.Write-A…

DDR3 数据传输 (五)

目录 引言 设计说明 参数说明 设计简图 IP配置说明 写FIFO IP

在linux上使用CMake构建和安装gtest

在linux上使用CMake构建和安装gtest一、准备工作二、构建并安装gtest的静态库三、构建并安装gtest的共享库一、准备工作 本机环境&#xff1a; 系统版本&#xff1a;RHEL 7.6GCC/G版本&#xff1a; 12.1.1googletest版本&#xff1a;1.12.1 注意&#xff0c;gtest的1.12.x分…

基于准则匹配的图像对准

一、概述 在图像处理相关的问题中&#xff0c;图像对准是一类典型的问题&#xff0c;也就是要将两幅图严丝合缝地对应起来。通常来讲&#xff0c;两幅图大小不一&#xff0c;一个是模板&#xff0c;一个是母图&#xff0c;也就是要在母图中搜寻定位到与模板图最为接近的区域。 …

QML教程(七) JavaScript

目录 一、对属性值使用 JavaScript 表达式 二、在 QML 中添加 JavaScript 函数 三、使用 JavaScript 文件 四、属性绑定中的 JavaScript 五、信号处理程序中的 JavaScript 六、将信号连接到 JavaScript 函数 七、启动执行 JavaScript QML 提供的 JavaScript 主机环境可以…

算法学习-并查集(持续更新中)

本文参考&#xff1a; 最容易理解的并查集详解 详解&#xff1a;并查集&#xff08;Union-Find&#xff09; 「代码随想录」684. 冗余连接:【并查集基础题目】详解&#xff01; 并查集从入门到出门 并查集常常在做图相关的题目时冒出来&#xff0c;但是笔者经常去回避这样的解法…

Exynos_4412——轮询与中断

目录 一、CPU与硬件的交互方式 1.1轮询 1.2中断 1.3DMA 二、轮询方式的按键实验 三、GPIO中断相关寄存器 四、GPIO中断编程 五、小作业 一、CPU与硬件的交互方式 1.1轮询 CPU执行程序时不断地询问硬件是否需要其服务&#xff0c;若需要则给予其服务&#xff0c;若不需…

Android Jetpack Compose——一个简单的微信界面

一个简单的微信界面简述效果视频底部导航栏导航元素导航栏放入插槽绘制地图消息列表效果图实现聊天效果图实现气泡背景联系人界面效果图实现好友详情效果图实现发现效果图实现未读红点未读条数朋友圈效果图实现上拉加载个人设置效果图实现个人信息功能区钱包效果图实现切换主题…

【Vue】项目搭建规范

1. 集成editorconfig配置 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。 VSCode需要安装一个插件&#xff1a;EditorConfig for VS Code 创建 .editorconfig 文件&#xff1a; # http://editorconfig.orgroot true[*] # 表示所有文…