You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
text/src/dao/impl/PhotoDaoImpl.java

70 lines
2.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package dao.impl;
// 引入相关类和接口
import dao.PhotoDao; // 数据访问对象DAO接口
import domain.Photo; // 表示 Photo 表数据结构的实体类
import org.springframework.dao.DataAccessException; // 数据访问异常类
import org.springframework.jdbc.core.BeanPropertyRowMapper; // 用于将结果集映射为实体类
import org.springframework.jdbc.core.JdbcTemplate; // Spring 的 JDBC 模板类
import utils.JDBCUtils; // 自定义工具类,用于获取数据源
/**
* PhotoDaoImpl 实现了 PhotoDao 接口,负责与数据库交互以操作 Photo 数据表。
*/
public class PhotoDaoImpl implements PhotoDao {
// 使用 JdbcTemplate 进行数据库操作,通过 JDBCUtils 获取数据源
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
/**
* 添加一条照片记录
* @param photo 包含照片信息的 Photo 对象
*/
@Override
public void addPhoto(Photo photo) {
try {
// SQL 语句:向 photo 表插入照片记录
String sql = "insert into photo(photo_id, photo_name) values(?, ?)";
// 使用 JdbcTemplate 执行插入操作
template.update(sql, photo.getPhotoId(), photo.getPhotoName());
} catch (DataAccessException e) {
e.printStackTrace(); // 打印异常堆栈信息
}
}
/**
* 根据照片 ID 查找照片
* @param id 照片 ID
* @return 查找到的 Photo 对象;未找到时返回 null
*/
@Override
public Photo findPhotoByPhotoId(String id) {
try {
// SQL 语句:根据照片 ID 查找对应的照片记录
String sql = "select * from photo where photo_id = ?";
// 使用 JdbcTemplate 执行查询,并将结果映射为 Photo 对象
Photo photo = template.queryForObject(sql, new BeanPropertyRowMapper<Photo>(Photo.class), id);
return photo; // 返回查询结果
} catch (DataAccessException e) {
e.printStackTrace(); // 打印异常堆栈信息
return null; // 查询失败时返回 null
}
}
/**
* 更新照片信息
* @param photo 包含更新信息的 Photo 对象
*/
@Override
public void updatePhoto(Photo photo) {
try {
// SQL 语句:更新 photo 表中的照片名称
String sql = "update photo set photo_name = ? where photo_id = ?";
// 使用 JdbcTemplate 执行更新操作
template.update(sql, photo.getPhotoName(), photo.getPhotoId());
} catch (Exception e) {
e.printStackTrace(); // 打印异常堆栈信息
}
}
}