文章摘要
这篇文章介绍了名为`AccessoryDao`的Java类,该类实现了对数据库表`tbl_accessory`的增删查改操作。类中包含以下四个静态方法:
1. `add(EntityAccessory entity)`:用于将`EntityAccessor`对象插入到数据库中,插入的字段包括文件名、文件大小、文件扩展名和路径。
2. `list()`:从数据库中查询所有`EntityAccessor`对象,并返回一个包含这些对象的列表。
3. `load(int id)`:根据记录的ID,从数据库中获取对应的`EntityAccessor`对象。
4. `remove(int id)`:删除数据库中指定ID的`EntityAccessor`记录。
类中使用了JDBC接口,通过`DBUtil`类进行数据库连接和 ResultSet、PreparedStatement 的操作。所有资源(如 Connection、ResultSet 和 PreparedStatement)在方法执行后都会被正确关闭。文章重点描述了类的核心功能和资源管理策略。
package dao.upload;
import entity.upload.EntityAccessory;
import util.DBUtil;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class AccessoryDao {
public static void add(EntityAccessory entity) {
Connection conn=DBUtil.getConnection();
String sql=”insert into tbl_accessory(file_name,file_size,file_ext_name,file_path) values(?,?,?,?)”;
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, entity.getFileName());
ps.setDouble(2, entity.getFileSize());
ps.setString(3, entity.getFile_ext_name());
ps.setString(4, entity.getFilePath());
ps.execute();
//conn.commit();
DBUtil.close(null, ps, conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static List<EntityAccessory> list() {
Connection conn=DBUtil.getConnection();
String sql=”select id,file_name,file_size,file_ext_name,file_path from tbl_accessory”;
List<EntityAccessory> accessoryList=new ArrayList<>();
try {
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while (rs.next()) {
EntityAccessory entity=new EntityAccessory();
entity.setId(rs.getInt(“id”));
entity.setFileName(rs.getString(“file_name”));
entity.setFileSize(new BigDecimal(rs.getDouble(“file_size”) / 1024).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
entity.setFile_ext_name(rs.getString(“file_ext_name”));
entity.setFilePath(rs.getString(“file_path”));
accessoryList.add(entity);
}
DBUtil.close(rs, ps, conn);
} catch (SQLException e) {
e.printStackTrace();
}
return accessoryList;
}
public static EntityAccessory load(int id){
Connection conn=DBUtil.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
EntityAccessory entity=new EntityAccessory();
String sql=”select id, file_name,file_size,file_ext_name,file_path from tbl_accessory where id=?”;
try {
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
rs=ps.executeQuery();
while (rs.next()){
entity.setId(rs.getInt(“id”));
entity.setFileName(rs.getString(“file_name”));
entity.setFileSize(rs.getDouble(“file_size”));
entity.setFile_ext_name(rs.getString(“file_ext_name”));
entity.setFilePath(rs.getString(“file_path”));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(rs,ps,conn);
}
return entity;
}
public static void remove(int id) {
Connection conn=DBUtil.getConnection();
String sql=”delete from tbl_accessory where id=?”;
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1,id);
ps.execute();
//conn.commit(); mysql默认开启了autocommit
DBUtil.close(null,ps,conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}