为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Bossen 2016-07-21 10:35:04
里面有个细节,困扰我12个小时了,我实在搞不明白,夜里做梦都在琢磨,希望有高人能指点,早释疑惑。我在调用trans(from,to,amout)方法时,老师用的是Account from=null;Account to=null;from=accountDao.get(1);to=accountDao.get(2);这个里面的get()方法是怎么来的?直接设置from和to的Id为什么运行时报空指针错误?Account from=new Account();Account to=new Account();from.setId(1);to.setId(2);请求大师解答!跪求解答心中疑惑!
查看完整描述

4 回答

?
Bossen

TA贡献13条经验 获得超4个赞

经过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

//同时数据库中的数据也同步更新了。

查看完整回答
1 反对 回复 2016-07-21
  • 慕粉3505864
    慕粉3505864
    不看看了想学着自己操作,但是发现老师这一集没给完整代码,请问你有没有源码分享一下?
?
Bossen

TA贡献13条经验 获得超4个赞

定义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呀,大家一起探讨吧。

查看完整回答
反对 回复 2016-07-21
  • 4 回答
  • 1 关注
  • 1531 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信