学习Dao类中信息相关的数据库操作方法

Dao 类中常见的信息相关数据库操作方法,假设存在一个 information 表用于存储信息,表结构如下:
Dao 类中常见的信息相关数据库操作方法,假设存在一个 information 表用于存储信息,表结构如下:
以下是对应的 Java Dao 类实现:
`import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class InformationDao {
private static final String URL = "jdbc:mysql://localhost:3306/your_database";
private static final String USER = "your_username";
private static final String PASSWORD = "your_password";

// 获取数据库连接
private Connection getConnection() throws SQLException {
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return DriverManager.getConnection(URL, USER, PASSWORD);
}

// 添加信息
public boolean addInformation(String title, String content) {
    String sql = "INSERT INTO information (title, content) VALUES (?,?)";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, title);
        pstmt.setString(2, content);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据 ID 删除信息
public boolean deleteInformation(int id) {
    String sql = "DELETE FROM information WHERE id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, id);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据 ID 更新信息
public boolean updateInformation(int id, String title, String content) {
    String sql = "UPDATE information SET title = ?, content = ? WHERE id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, title);
        pstmt.setString(2, content);
        pstmt.setInt(3, id);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据 ID 查询信息
public Information getInformationById(int id) {
    String sql = "SELECT * FROM information WHERE id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, id);
        ResultSet rs = pstmt.executeQuery();
        if (rs.next()) {
            String title = rs.getString("title");
            String content = rs.getString("content");
            String createTime = rs.getString("create_time");
            return new Information(id, title, content, createTime);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

// 查询所有信息
public List<Information> getAllInformation() {
    List<Information> informationList = new ArrayList<>();
    String sql = "SELECT * FROM information";
    try (Connection conn = getConnection();
         Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery(sql)) {
        while (rs.next()) {
            int id = rs.getInt("id");
            String title = rs.getString("title");
            String content = rs.getString("content");
            String createTime = rs.getString("create_time");
            informationList.add(new Information(id, title, content, createTime));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return informationList;
}

}

class Information {
private int id;
private String title;
private String content;
private String createTime;

public Information(int id, String title, String content, String createTime) {
    this.id = id;
    this.title = title;
    this.content = content;
    this.createTime = createTime;
}

// Getters and Setters
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public String getCreateTime() {
    return createTime;
}

public void setCreateTime(String createTime) {
    this.createTime = createTime;
}

}`
总结 Dao 类中各种数据库操作方法的共同点和不同点
共同点
数据库连接获取:所有操作方法都需要先获取数据库连接。通常会有一个公共的方法(如 getConnection())来负责加载数据库驱动并建立连接,以保证数据库操作的基础环境。
资源管理:都需要对数据库操作过程中使用的资源(如 Connection、Statement、ResultSet 等)进行管理,防止资源泄漏。一般会使用 try-with-resources 语句来自动关闭资源。
异常处理:都需要处理可能出现的 SQLException 异常,以确保程序在出现数据库操作错误时能够给出相应的反馈或进行相应的处理。
SQL 语句使用:都依赖 SQL 语句来完成具体的数据库操作,如 INSERT、DELETE、UPDATE、SELECT 等。
不同点
SQL 语句类型
插入操作:使用 INSERT 语句将新的数据插入到数据库表中,需要指定要插入的列和对应的值。
删除操作:使用 DELETE 语句从数据库表中移除指定条件的数据。
更新操作:使用 UPDATE 语句修改数据库表中已存在的数据,需要指定要更新的列和新的值,以及更新的条件。
查询操作:使用 SELECT 语句从数据库表中检索数据,可以根据条件筛选数据,并可以选择要返回的列。
返回值类型
插入、删除、更新操作:通常返回一个布尔值,表示操作是否成功(如影响的行数是否大于 0)。
查询操作:返回的数据类型根据查询需求而定,可能是单个对象(如根据 ID 查询),也可能是对象列表(如查询所有记录)。
参数设置
插入、更新操作:需要设置要插入或更新的数据,通常使用 PreparedStatement 的 setXXX() 方法按顺序设置参数。
删除、查询操作:需要设置查询或删除的条件,同样使用 PreparedStatement 的 setXXX() 方法设置条件参数。
通过对这些共同点和不同点的总结,可以形成一个清晰的关于 Dao 类数据库操作方法的知识体系,有助于更好地理解和编写数据库操作代码。

posted @ 2025-02-19 17:06  七分之一月  阅读(20)  评论(0)    收藏  举报
//雪花飘落效果