private QueryRunner qr=new QueryRunner();

本文介绍了一个简单的账户DAO实现,包括查询账户信息和更新账户余额的方法。使用了DbUtils和Dbcp来处理数据库操作。
package com.tfy.itheima.dao.impl;




//DAO不能牵扯任何业务逻辑
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;


import com.tfy.itheima.domain.Account;
import com.tfy.itheima.jdbc.util.DbcpUtil;


public class AccountDaoImpl {
private QueryRunner qr=new QueryRunner();
public Account findAccount(String name){
String sql="select * from account where name=?";
try{
return qr.query(DbcpUtil.getConnection(), sql, new BeanHandler<Account>(Account.class),name);

}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}

}
public void update(Account account){
String sql="update account set money=? where name=?";
Object []params={account.getMoney(),account.getName()};
try{
qr.update(DbcpUtil.getConnection(), sql, params);
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}

}
/*public void transfer(String sourceAccount,String targetAccount,float money){
Connection conn=null;
try{
conn=DbcpUtil.getConnection();
conn.setAutoCommit(false);
String sql1="update account set money=money-? where name=?";
Object []params1={money,sourceAccount};

qr.update(conn,sql1, params1);

int i=1/0;

String sql2="update account set money=money+? where name=?";
Object []params2={money,sourceAccount};

qr.update(conn,sql2, params2);

}catch(Exception e){
e.printStackTrace();
try{
conn.rollback();
}catch(Exception e1){
e1.printStackTrace();
}
throw new RuntimeException(e);
}finally{
try {
conn.commit();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

}
}*/
}
package com.sasda; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Scanner; public class MilepostService { // 模拟插入里程碑信息的方法 public Milepost insertMilepostInfo() throws ParseException { Milepost milepost = new Milepost(); Scanner sc = new Scanner(System.in); System.out.println("请输入里程碑信息:"); System.out.print("里程碑名称: "); milepost.setName(sc.next()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); System.out.print("发射时间(格式:2025-06-24): "); milepost.setLaunchtime(formatter.parse(sc.next())); System.out.print("里程碑描述: "); milepost.setDepict(sc.next()); System.out.print("里程碑状态(数字表示): "); milepost.setState(sc.nextInt()); return milepost; } public void addMilepost(Milepost milepost) throws Exception { //创建QueryRunner对象 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); //定义插入里程碑SQL String sql = "insert into milepost(name, launchtime, depict, state)" + " values(?, ?, ?, ?)"; //设置传入SQL中的参数值 Object[] params = {milepost.getName(), milepost.getLaunchtime(), milepost.getDepict(), milepost.getState()}; //执行插入里程碑信息的SQL int count = qr.update(sql, params); //输出插入结果判断是否成功 if (count < 1) { System.out.println("新增里程碑添加失败!"); } else { System.out.println("新增里程碑添加成功!"); } } //删除里程碑信息 public void deleteMilepost(int mid) throws Exception { QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); String sql = "delete from milepost where id = ?"; int count = qr.update(sql, mid); if (count < 1) { System.out.println("删除里程碑失败!"); } else { System.out.println("删除里程碑成功!"); } } // 修改里程碑信息 public void updateMilepost(Milepost milepost ) throws Exception { QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); String sql = "update milepost set name = ?, launchtime = ?, depict = ?, state = ? where id = ?"; Object[] params = {milepost.getName(), milepost.getLaunchtime(), milepost.getDepict(), milepost.getState(), milepost.getId()}; int count = qr.update(sql, params); if (count < 1) { System.out.println("修改里程碑失败!"); } else { System.out.println("修改里程碑成功!"); } } // 可选:用于测试 main 方法 public static void main(String[] args) throws ParseException { MilepostService service = new MilepostService(); Milepost milepost = service.insertMilepostInfo(); System.out.println("您输入的里程碑信息如下:"); System.out.println(milepost); } } 帮我实现查询,修改,
07-04
package com.sxt.dao; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.commons.dbutils.BasicRowProcessor; import org.apache.commons.dbutils.BeanProcessor; import org.apache.commons.dbutils.GenerousBeanProcessor; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.RowProcessor; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import com.sxt.entity.BookDB; import com.sxt.entity.HistoryDB; import com.sxt.utils.C3p0Tool; import com.sxt.utils.PageTool; public class HistoryDao { QueryRunner queryRunner = new QueryRunner(C3p0Tool.getDataSource()); //开启驼峰自动转换 BeanProcessor bean = new GenerousBeanProcessor(); RowProcessor processor = new BasicRowProcessor(bean); /** * 添加图书借阅记录 * @return * @throws SQLException */ public Integer addHistory(HistoryDB historyDB, Connection conn) throws SQLException { QueryRunner queryRunner = new QueryRunner(); String sql = "insert into t_history (uid,name,account,bid,book_name,begin_time, end_time,status) values (?,?,?,?,?,?,?,?)"; Object[] params = {historyDB.getUid(),historyDB.getName(),historyDB.getAccount(),historyDB.getBid(), historyDB.getBookName(),historyDB.getBeginTime(),historyDB.getEndTime(),historyDB.getStatus()}; return queryRunner.update(conn, sql, params); } /** * 查询图书借阅记录 * @param currentPage * @param pageSize * @param uid * @param status * @return */ public PageTool<HistoryDB> listByPage(String currentPage, String pageSize, Integer uid, Integer status){ try { StringBuffer listSql = new StringBuffer("select *"); StringBuffer countSql = new StringBuffer("select count(*)"); StringBuffer sql = new StringBuffer(" from t_history where 1 = 1"); List<Object> params = new ArrayList<>(); if (uid != null) { sql.append(" and uid = ?"); params.add(uid); } if (status != null) { sql.append(" and status = ?"); params.add(status); } //获取总记录数 Long total = queryRunner.query(countSql.append(sql).toString(), new ScalarHandler<Long>(),params.toArray()); //初始化分页工具 PageTool<HistoryDB> pageTools = new PageTool<HistoryDB>(total.intValue(), currentPage, pageSize); sql.append(" order by begin_time desc limit ?,?"); params.add(pageTools.getStartIndex()); params.add(pageTools.getPageSize()); //当前页的数据 List<HistoryDB> list = queryRunner.query(listSql.append(sql).toString(), new BeanListHandler<HistoryDB>(HistoryDB.class, processor),params.toArray()); pageTools.setRows(list); System.out.println(pageTools); return pageTools; } catch (SQLException e) { e.printStackTrace(); } return new PageTool<HistoryDB>(0, currentPage, pageSize); } /** * 无分页·查询 * @param hid * @return */ public List<HistoryDB> list(String hid){ StringBuffer sql = new StringBuffer("select * from t_history where 1 = 1 "); List<Object> params = new ArrayList<>(); if (hid != null && hid != "") { sql.append("and hid = ?"); params.add(hid); } try { return queryRunner.query(sql.toString(), new BeanListHandler<HistoryDB>(HistoryDB.class, processor), params.toArray()); } catch (SQLException e) { e.printStackTrace(); } return null; } /** * 修改图书借阅历史记录 * @param historyDB * @param conn * @return * @throws SQLException */ public Integer updHistory(HistoryDB historyDB, Connection conn) throws SQLException { QueryRunner qr = new QueryRunner(); String sql = "update t_history set status = ? where hid = ?"; Object[] params = {historyDB.getStatus(), historyDB.getHid()}; return qr.update(conn, sql, params); } public Integer updHistory(HistoryDB historyDB) throws SQLException { String sql = "update t_history set end_time = ? where hid = ?"; Object[] params = {historyDB.getEndTime(), historyDB.getHid()}; return queryRunner.update(sql, params); } }
10-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值