创建一个JDBC类,其主要包括了创建与数据库的连接,查询全部学生信息,添加学生信息,修改学生信息和删除学生信息等方法并将返回的结果集封装到ArrayList中
时间: 2024-03-08 08:48:15 浏览: 26
好的,这是一个典型的JDBC操作数据库的问题,我来给您提供一份样例代码,帮助您完成这个问题。
首先需要引入JDBC的jar包,这里我们以MySQL为例,需要引入mysql-connector-java.jar。
然后,您需要创建一个JDBCUtil类,用于建立与数据库的连接,以及执行SQL语句。
```java
import java.sql.*;
import java.util.ArrayList;
public class JDBCUtil {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
/**
* 建立数据库连接
*
* @return
*/
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 查询全部学生信息
*
* @return
*/
public static ArrayList<Student> queryAllStudent() {
ArrayList<Student> studentList = new ArrayList<>();
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM student";
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
studentList.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return studentList;
}
/**
* 添加学生信息
*
* @param student
* @return
*/
public static int addStudent(Student student) {
int result = 0;
Connection conn = getConnection();
PreparedStatement pstmt = null;
String sql = "INSERT INTO student (name, age) VALUES (?, ?)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setInt(2, student.getAge());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
/**
* 修改学生信息
*
* @param student
* @return
*/
public static int updateStudent(Student student) {
int result = 0;
Connection conn = getConnection();
PreparedStatement pstmt = null;
String sql = "UPDATE student SET name=?, age=? WHERE id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setInt(2, student.getAge());
pstmt.setInt(3, student.getId());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
/**
* 删除学生信息
*
* @param id
* @return
*/
public static int deleteStudent(int id) {
int result = 0;
Connection conn = getConnection();
PreparedStatement pstmt = null;
String sql = "DELETE FROM student WHERE id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
}
```
其中,Student类是一个简单的JavaBean类,用于存储学生信息。
```java
public class Student {
private int id;
private String name;
private int age;
// 省略getter和setter方法
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
接下来,您可以在任何需要操作数据库的地方,调用JDBCUtil类提供的方法,来完成对数据库的操作。
```java
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// 查询全部学生信息
ArrayList<Student> studentList = JDBCUtil.queryAllStudent();
System.out.println(studentList);
// 添加学生信息
Student student1 = new Student();
student1.setName("Tom");
student1.setAge(18);
int result1 = JDBCUtil.addStudent(student1);
System.out.println(result1);
// 修改学生信息
Student student2 = new Student();
student2.setId(1);
student2.setName("Jerry");
student2.setAge(19);
int result2 = JDBCUtil.updateStudent(student2);
System.out.println(result2);
// 删除学生信息
int result3 = JDBCUtil.deleteStudent(2);
System.out.println(result3);
}
}
```
以上就是一个简单的利用JDBC操作数据库的样例代码,希望对您有所帮助。