java连接navicat数据库增删改查
时间: 2025-01-06 07:28:03 浏览: 8
### Java 使用 Navicat 进行 MySQL 数据库增删改查操作
在开发环境中,使用 IntelliJ IDEA 或 Eclipse 结合 Navicat 可以高效地完成对 MySQL 数据库的操作。下面展示的是基于 JDBC 技术,在 Java 应用程序中连接到 MySQL 并执行基本的 CRUD (Create, Read, Update, Delete) 操作的方法。
#### 创建 Maven 项目并配置依赖项
为了简化类路径管理和构建过程,建议采用 Maven 构建工具来管理项目的依赖关系。需向 `pom.xml` 文件添加如下依赖:
```xml
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
</dependencies>
```
#### 编写数据库连接代码
建立与 MySQL 的连接是进行任何数据交互的前提条件之一。这里给出一段用于获取 Connection 对象的基础方法:
```java
import java.sql.Connection;
import java.sql.DriverManager;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/testdb"; // 替换成自己的数据库URL
private static final String USER = "root";
private static final String PASSWORD = "";
public static Connection getConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
```
此部分实现了通过指定用户名、密码以及目标数据库名称获得一个有效的数据库会话实例[^1]。
#### 实现增删改查功能
接下来定义具体的业务逻辑层接口及其对应的实现类,负责处理来自前端界面的各种请求并将结果反馈回去。
##### 插入记录(Create)
```java
import java.sql.PreparedStatement;
import java.sql.SQLException;
public void insertStudent(String name, int age){
try(Connection conn=DBUtil.getConnection()){
String sql="INSERT INTO student(name,age) VALUES(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setInt(2,age);
int affectedRows=pstmt.executeUpdate();
System.out.println("Inserted "+affectedRows+" row(s).");
} catch(SQLException e){
e.printStackTrace();
}
}
```
这段代码展示了如何将新学生的信息存入名为 `student` 的表格内。
##### 查询记录(Read)
```java
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public List<Student> getAllStudents(){
List<Student> students=new ArrayList<>();
try(Connection conn=DBUtil.getConnection()){
String sql="SELECT * FROM student ORDER BY id DESC LIMIT 10;";
ResultSet rs=conn.createStatement().executeQuery(sql);
while(rs.next()){
Student s=new Student(
rs.getInt("id"),
rs.getString("name"),
rs.getInt("age")
);
students.add(s);
}
}catch(Exception ex){
ex.printStackTrace();
}
return students;
}
```
上述片段读取了最近十条学生的资料,并将其封装成对象列表返回给调用者[^3]。
##### 更新记录(Update)
```java
public boolean updateStudent(int id,String newName,int newAge){
try(Connection conn=DBUtil.getConnection()){
String sql="UPDATE student SET name=?, age=? WHERE id=?";
PreparedStatement psmt=conn.prepareStatement(sql);
psmt.setString(1,newName);
psmt.setInt(2,newAge);
psmt.setInt(3,id);
int count=psmt.executeUpdate();
return count==1;
}catch(SQLException se){
se.printStackTrace();
return false;
}
}
```
该函数允许修改特定 ID 学生的名字和年龄字段值。
##### 删除记录(Delete)
```java
public boolean deleteStudentById(int id){
try(Connection conn=DBUtil.getConnection()){
String sql="DELETE FROM student WHERE id=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setInt(1,id);
int result=pst.executeUpdate();
return result>=1;
}catch(SQLException sqle){
sqle.printStackTrace();
return false;
}
}
```
最后这个例子演示了怎样依据唯一标识符移除某条记录。
阅读全文