//用传递参数的方式把变化部分提取出来
public abstract class AbstractDao{
public int update(String sql,Object[] args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
for(int i=0;i<args.length;i++)
ps.setObject(i+1,args[i]);
return ps.executeUpdate();
}catch(Exception e){
throw new Exception(e.getMessage(),e);
}finally{
jdbcUtils.free(rs,ps,conn);
}
}
public Object find(String sql,Object[] args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
for(int i=0;i<args.length;i++)
ps.setObject(i+1,args[i]);
rs = ps.executeQuery();
Object obj = null;
if(rs.next()){
obj = rowMapper(rs); //这个地方有个缺点,就是随着sql语句的变化,这个东西会不一样的,虽然是交给子类去实现,但是子类只能实现一个,不能实现多个
}
}catch(Exception e){
throw new Exception(e.getMessage(),e);
}finally{
jdbcUtils.free(rs,ps,conn);
}
}
abstract protected Object rowMapper(ResultSet rs);
}
public class UserDaoImpl extends AbstractDao{
public void update(User user){
String sql = "update user set name =?,birthday=?,money=? where id = ?";
Object[] args = new Object[]{user.getName(),user.getBirthday(),user.getMoney(),user.getId()};
super.ipdate(sql,args);
}
}
分享到:
相关推荐
java servlet :glasses: 对象...参数:包含用于执行查询的数据数组,特别是每个 ? 对应于阵列中的试验部分。 select * form news where news.A = ?... AbstractDAO: public class AbstractDAO<T> im
可能使用JDBC(Java Database Connectivity)API进行SQL查询和更新,实现用户留言的存储和检索。 4. **DAO(Data Access Object)模式**:`AbstractDao`类可能作为DAO模式的基础,用于封装数据库操作。DAO模式是一...
数据库模块被统一放置在`tot.dao.jdbc`包内,所有的业务逻辑相关的操作都是通过统一的DAOFactory获取并实例化的。例如,在进行广告管理时,如果原有的`AdDaoJDBC`类需要进行二次开发,可以通过继承的方式创建新的类`...
例如,`AbstractDao`可以包含`executeQuery()`和`executeUpdate()`等通用方法,而`UserDaoImpl`只需实现具体的查询和更新逻辑。 在给定的`TestDao`中,我们可以猜测这是一个用于测试DAO层实现的类。它可能包含了对...
python教程学习
tdac034.pdf
veclibm111111111111
nssm工具,进行2次解压后即可
视讯镜头优化,操作不走
【数据结构】的资源,包括书籍、在线课程和网站
北京大学-DeepSeek系列-提示词工程和落地场景.pdf.png
【财信国际经济研究院-2025研报】2025年2月CPI和PPI数据点评:通胀低于预期,内需亟待提振.pdf
【毕业设计】java-springboot+vue精品在线试题库系统源码(完整前后端+mysql+说明文档+LunW).zip
python安装-25.求 a 的 b 次方——有点不好意思哈.py
代码实现了自适应IMM(交互式多模型)算法,专注于对目标状态进行估计,并结合了匀速(CV)和匀加速(CA)运动模型。它使用自适应观测噪声估计和扩展卡尔曼滤波器(EKF)作为滤波主体,并在最后提供误差统计特性输出。
中产品工业物联网联网的基础功能,是企业开启数字化转型的入门之选。它能帮助企业快速搭建起基础的设备数据采集与监控体系,以较低成本实
北京大学DeepSeek系列-DeepSeek与AIGC应用.pdf.png
【毕业设计-java】springboot-vue基于多维分类的知识管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
## 一、数据介绍 本数据参考C刊《管理评论》佟岩(2024)老师的做法,使用各年度省级政府工作报告中“减碳”关键词的词频总数来测度地方政府对“减碳”的重视程度,“减碳”关键词包括二氧化碳、低碳、减排、节能、能耗、环境保护(环保)、生态、绿色。 本数据包含:原始数据、参考文献、代码do文件、最终结果。 ## 二、参考文献: 佟岩,李鑫,徐国铨.企业集团碳减排压力与债务分布-来自高耗能上市公司的经验证据[J].管理评论,2024,36(02):210-221.DOI:10.14120/j.cnki.cn11-5057/f.2024.02.014 ## 三、相关数据:城市、城市编码、年份、减碳重视程度词频。
python教程学习