日夜难眠,看过jdbc之对面的女孩走过来的帮忙解答一点疑惑

里面有个细节,困扰我12个小时了,我实在搞不明白,夜里做梦都在琢磨,希望有高人能指点,早释疑惑。

我在调用trans(from,to,amout)方法时,老师用的是

Account from=null;

Account to=null;

from=accountDao.get(1);

to=accountDao.get(2);

  1. 这个里面的get()方法是怎么来的?

  2. 直接设置from和to的Id为什么运行时报空指针错误?

    Account from=new Account();

    Account to=new Account();

    from.setId(1);

    to.setId(2);

请求大师解答!跪求解答心中疑惑!

Bossen
浏览 1532回答 4
4回答

Bossen

经过24小时的琢磨,终于弄懂了,我将我犯的错误放在这里,仅供大家参考,都是一些细节的错误,希望对大家有所帮助。//“更新数据”方法public void accountUpdate(Account a) throws Exception{ Connection conn=DBUtil.getConnection(); StringBuilder sb=new StringBuilder(); sb.append("update account_info set account=?,amount=? where id=?"); PreparedStatement ps=conn.prepareStatement(sb.toString()); ps.setString(1,a.getAccount());//与上面sql语句对应放在第一个传递 ps.setDouble(2, a.getAmount());//第二个传递 ps.setInt(3, a.getId());//第三个传递 ps.execute();}//获取带account、id、amount信息的Account对象public Account get(Integer id) throws Exception{ Connection conn=DBUtil.getConnection(); StringBuilder sb=new StringBuilder(); sb.append("select id,account,amount from account_info  where id= ?"); PreparedStatement ps=conn.prepareStatement(sb.toString()); ps.setInt(1, id); ResultSet rs=ps.executeQuery(); Account a=null; while(rs.next()){  a=new Account();  a.setId(rs.getInt("id"));  a.setAccount(rs.getString("account"));  a.setAmount(rs.getDouble("amount")); } return a; }//调用方法public class Test01 { public static void main ( String[] args ) throws Exception  {  Service service=new Service();  AccountAction a=new AccountAction();        Account from=null;        Account to=null;        from=a.get(1);        to=a.get(2);        service.trans(from, to, 20d);        System.out.println("账户Id:  "+from.getId()+"账号:"+from.getAccount()+"      余额:"+from.getAmount());  } }//输出结果账户Id:  1账号:a      余额:210.0//同时数据库中的数据也同步更新了。

Bossen

定义get()方法,获取from、to含有id,account、amount信息的对象public Account get(Integer id) throws Exception{ Connection conn=DBUtil.getConnection(); StringBuilder sb=new StringBuilder(); sb.append("select id,account,amount from account_info  where id= ?"); PreparedStatement ps=conn.prepareStatement(sb.toString()); ps.setInt(1, id); ResultSet rs=ps.executeQuery(); Account a=null; while(rs.next()){  a=new Account();  a.setId(rs.getInt("id"));  a.setAccount(rs.getString("account"));  a.setAmount(rs.getDouble("amount")); } return a; }//调用trans(from,to,amount)方法public class Test01 { public static void main ( String[] args ) throws Exception  {  Service service=new Service();  AccountAction a=new AccountAction();        Account from=null;        Account to=null;        from=a.get(1);        to=a.get(2);        service.trans(from, to, 20d);  } }运行的时候没有问题,大神们过来看看,怎么破啊,虽然是个小问题,可是不解决,就不能真正掌握jdbc呀,大家一起探讨吧。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java