Cons: The DAO level completes the service level operation, which is detrimental to later code modification and refactoring
1. Create your own C3p0util
Account Database
2.jar Pack
3.Dao level
Interface:
PackageCom.learning.dao;ImportCom.learning.domain.Account; Public InterfaceAccountdao {/*** Transfer *@paramfromname Transfer out user *@paramtoname Transfer to User *@paramMoney transfer Amount*/ Public voidUpdateaccount (String fromname,string ToName,DoubleMoneythrowsException;}
Implementation class:
PackageCom.learning.dao.impl;Importjava.sql.SQLException;ImportOrg.apache.commons.dbutils.QueryRunner;Importcom.learning. Dao. Accountdao;Importcom.learning. util. C3p0util; Public classAccountdaoimplImplementsAccountdao { Public voidUpdateaccount (String fromname, String toname,DoubleMoneythrowsException {//Create a Queryrunner objectQueryrunner QR =NewQueryrunner (C3p0util.getdatasource ()); Qr.update ("Update account set money=money-?" where Name=? ", Money,fromname); Qr.update ("Update account set money=money+?" where Name=? ", Money,toname); }}
Transfer example (i): DAO level Implementation (this example uses Queryrunner to execute SQL statements, data source is C3P0)