这段代码是一个数据库操作的实现类,实现了对 Classroom 对象的增删改查操作。以下是对代码的详细解析:

  1. get(Integer id) 方法用于根据 id 查询并返回一个 Classroom 对象。首先通过 DB.openCn() 方法获取数据库连接,然后使用预编译的 SQL 语句查询指定 id 的记录。如果出现异常,则打印错误信息并关闭数据库连接。如果查询成功,则将查询结果封装成 Classroom 对象返回。

  2. add(Classroom classroom) 方法用于向数据库中插入一个新的 Classroom 记录。首先通过 DB.openCn() 方法获取数据库连接,然后使用预编译的 SQL 语句插入记录。如果出现异常,则打印错误信息并关闭数据库连接。如果插入成功,则返回插入的记录数。

  3. edit(Classroom classroom) 方法用于修改数据库中的一个 Classroom 记录。首先通过 DB.openCn() 方法获取数据库连接,然后使用预编译的 SQL 语句更新记录。如果出现异常,则打印错误信息并关闭数据库连接。如果更新成功,则返回更新的记录数。

  4. del(Integer id) 方法用于删除数据库中的一个 Classroom 记录。首先通过 DB.openCn() 方法获取数据库连接,然后使用预编译的 SQL 语句删除记录。如果出现异常,则打印错误信息并关闭数据库连接。如果删除成功,则返回删除的记录数。

在每个方法中,都会调用 DB.closeCn() 方法来关闭数据库连接,以释放资源。同时,如果出现异常,则会打印错误信息并返回相应的结果。

需要注意的是,这段代码中使用了预编译的 SQL 语句,可以有效防止 SQL 注入攻击。同时,需要确保数据库连接的正确打开和关闭,以避免资源泄露和性能问题。

@Override
public Classroom get(Integer id) {

    Classroom classroom = null;
    Connection cn = DB.openCn();//开启数据库
    String sql = 'select id,name from classroom where id=?';
    PreparedStatement ps = null;//当预编译对象值为null时
    try {
        ps = cn.prepareStatement(sql);
        ps.setInt(1, id);
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('查询所有SQL语句错误');
        DB.closeCn();
        return classroom;
    }
    ResultSet rs = null;
    try {
        rs = ps.executeQuery();
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('执行查询所有SQL语句错误');
        DB.closeCn();
        return classroom;
    }

    try {
        while (rs.next()) {
            int idTemp = rs.getInt('id');
            String name = rs.getString('name');
            classroom = new Classroom(idTemp, name);

        }
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('结果集遍历错误');
        DB.closeCn();
        return classroom;
    }
    DB.closeCn();
    return classroom;
}


@Override
public Integer add(Classroom classroom) {
    int rows = 0;
    Connection cn = DB.openCn();
    String sql = 'insert into classroom (name) values(?)';
    PreparedStatement ps = null;
    try {
        ps = cn.prepareStatement(sql);
        ps.setString(1, classroom.getName());
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('添加SQL语句错误');
        DB.closeCn();
        return rows;
    }

    try {
        rows = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('执行添加SQL语句错误');
        DB.closeCn();
        return rows;
    }

    DB.closeCn();
    return rows;
}

@Override
public Integer edit(Classroom classroom) {
    int rows = 0;
    Connection cn = DB.openCn();
    String sql = 'update classroom set name=? where id=?';
    PreparedStatement ps = null;
    try {
        ps = cn.prepareStatement(sql);
        ps.setString(1, classroom.getName());
        ps.setInt(2, classroom.getId());
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('修改SQL语句错误');
        DB.closeCn();
        return rows;
    }

    try {
        rows = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('执行修改SQL语句错误');
        DB.closeCn();
        return rows;
    }
    DB.closeCn();
    return rows;
}

@Override
public Integer del(Integer id) {
    int rows = 0;
    Connection cn = DB.openCn();
    String sql = 'delete from classroom where id=?';
    PreparedStatement ps = null;
    try {
        ps = cn.prepareStatement(sql);
        ps.setInt(1, id);
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('删除SQL语句错误');
        DB.closeCn();
        return rows;
    }

    try {
        rows = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println('执行删除SQL语句错误');
        DB.closeCn();
        return rows;
    }
    DB.closeCn();
    return rows;
}
Classroom 数据操作实现 - Java 代码示例

原文地址: https://www.cveoy.top/t/topic/qFkz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录