【Java】如何使用jdbc连接并操作MySQL,一文读

【Java】如何使用JDBC连接并操作MySQL,一文读懂!🚀

JDBC(JavaDatabaseConnectivity)是Java语言中用来规范客户端程序如何访问数据库的API,今天我们就来学习如何使用JDBC连接并操作MySQL数据库!💡

1.准备工作🛠️

首先,确保你已经:
-安装好MySQL数据库
-下载了MySQL的JDBC驱动(mysql-connector-java.jar)
-创建好要操作的数据库和表

2.连接MySQL数据库🔌

```java
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;

publicclassJdbcDemo{
publicstaticvoidmain(String\[\]args){
//数据库连接信息
Stringurl="jdbc:mysql://localhost:3306/你的数据库名";
Stringusername="你的用户名";
Stringpassword="你的密码";

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

//2.获取连接
Connectionconn=DriverManager.getConnection(url,username,password);
System.out.println("数据库连接成功!🎉");

//3.记得关闭连接
conn.close();
}catch(ClassNotFoundException|SQLExceptione){
e.printStackTrace();
}
}
}
```

3.执行SQL操作📝

查询数据🔍
```java
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery("SELECTFROMusers");

while(rs.next()){
System.out.println("ID:"+rs.getInt("id")+
",姓名:"+rs.getString("name"));
}
rs.close();
stmt.close();
```

插入数据➕
```java
Stringsql="INSERTINTOusers(name,age)VALUES(?,?)";
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setString(1,"张三");
pstmt.setInt(2,25);
introws=pstmt.executeUpdate();
System.out.println("插入了"+rows+"行数据!👍");
pstmt.close();
```

更新数据🔄
```java
Stringsql="UPDATEusersSETage=?WHEREname=?";
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setInt(1,30);
pstmt.setString(2,"张三");
pstmt.executeUpdate();
pstmt.close();
```

4.异常处理与资源释放⚠️

记得使用try-with-resources自动关闭资源:
```java
try(Connectionconn=DriverManager.getConnection(url,username,password);
Statementstmt=conn.createStatement()){
//执行SQL操作
}catch(SQLExceptione){
e.printStackTrace();
}
```

总结📚

通过JDBC连接MySQL只需简单几步:
1.加载驱动
2.获取连接
3.执行SQL
4.处理结果
5.关闭连接

掌握了这些基础操作,你就可以在Java中轻松操作MySQL数据库啦!💪记得在实际开发中使用连接池(如HikariCP)来提高性能哦!✨

相关推荐
用户别睡觉6 分钟前
自己搭的中文 PDF RAG 接了 Redis 缓存、跑了 RAGAS,以为能写“提速多少、准确率多少”,结果两个都没按预期来。
后端
彭亚川Allen13 分钟前
985 在职研究生到底怎么样?是不是水硕?是不是.....?
前端·后端·程序员
乘风24815 分钟前
# 我做了个会遗忘的 AI 记忆,召回率反而从 8% 涨到 100%
后端
Rain的Java大神之路31 分钟前
面试被LeetCode 27(移除元素)问懵?别再用两层 for 循环了:一道“简单题”吃透双指针原地删除,附面试加分话术 + 11 个避坑清单
后端·leetcode·面试
悟天特斯32 分钟前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网
70后写java的老码农42 分钟前
Spring Boot 3.x + ShardingSphere 5.x + MyBatis-Plus 3.x:订单分库分表实战(含两个踩坑记录)
java
霸道流氓气质1 小时前
AI 翻译插件:翻译记忆级联复用、术语混合检索与结构化质量门禁的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
斯维赤1 小时前
OCR到底是接入第三方API 还是自己封装?
java·ocr
利威尔xu1 小时前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
码智社1 小时前
Redis 哨兵模式详解:从原理到生产实践
java·redis