Classroom 数据操作实现 - Java 代码示例
这段代码是一个数据库操作的实现类,实现了对 Classroom 对象的增删改查操作。以下是对代码的详细解析:
-
get(Integer id)方法用于根据 id 查询并返回一个 Classroom 对象。首先通过DB.openCn()方法获取数据库连接,然后使用预编译的 SQL 语句查询指定 id 的记录。如果出现异常,则打印错误信息并关闭数据库连接。如果查询成功,则将查询结果封装成 Classroom 对象返回。 -
add(Classroom classroom)方法用于向数据库中插入一个新的 Classroom 记录。首先通过DB.openCn()方法获取数据库连接,然后使用预编译的 SQL 语句插入记录。如果出现异常,则打印错误信息并关闭数据库连接。如果插入成功,则返回插入的记录数。 -
edit(Classroom classroom)方法用于修改数据库中的一个 Classroom 记录。首先通过DB.openCn()方法获取数据库连接,然后使用预编译的 SQL 语句更新记录。如果出现异常,则打印错误信息并关闭数据库连接。如果更新成功,则返回更新的记录数。 -
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;
}
原文地址: https://www.cveoy.top/t/topic/qFkz 著作权归作者所有。请勿转载和采集!