package cn.lnu.dbutils.demo; import java.sql.Connection; import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import cn.lnu.domain.Account; import cn.lnu.utils.JdbcUtils; //ʹ��dbutils��ܽ������ﴦ�� public class AccountDao { private Connection conn;//��סͨ�����캯�����service�㴦��ҵ���߼����ݽ������ݿ����ӣ��ڲ�������ʱ�����漰��crud������sql���������������ִ�� public AccountDao() { super(); } public AccountDao(Connection conn){ this.conn=conn; } public void update(Account a){ try { QueryRunner runner=new QueryRunner(); String sql="update account set money=? where id=?"; Object params[]={a.getMoney(),a.getId()}; runner.update(JdbcUtils.getConnection(),sql, params); } catch (Exception e) { throw new RuntimeException(e); } } public Account find(int id){ try { QueryRunner runner=new QueryRunner(); String sql="select * from account where id=?"; return (Account) runner.query(JdbcUtils.getConnection(),sql, id, new BeanHandler(Account.class)); } catch (Exception e) { throw new RuntimeException(e); } } //ģ���a-->b�˻�ת��100Ԫ public void transfer() throws SQLException{ Connection conn=null; try{ conn=JdbcUtils.getConnection(); conn.setAutoCommit(false);//�������Ͽ������� QueryRunner runner=new QueryRunner(); String sql1="update account set money=money-100 where name='aaa'"; runner.update(conn, sql1);//�ѿ�����������Ӵ��ݸ�update��runner�Ὣ����sql������ķ�ʽִ�� String sql2="update account set money=money+100 where name='bbb'"; runner.update(conn, sql2);//�����ͽ�����sql����ͬһ�����������������ִ���� conn.commit(); }finally{ if(conn!=null){ conn.close(); } } } }