tmq77 2016-10-20 12:15 采纳率: 50%
浏览 1244
已采纳

java中一个类在另一个类中实例化后,数据会丢失吗?

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import Handler.SqlConnection;
import Handler.SqlRegist;
import data.User;
public class RegistAction extends ActionSupport{
PreparedStatement presql;
private User user;

public void setUser(User user) {
    this.user = user;
}
public User getUser() {
    return user;
}
public String execute() throws Exception{
    //new SqlRegist().insert();
SqlRegist sr=new SqlRegist();
sr.insert();
        return SUCCESS;

}

}


这个是出现问题的类
package Handler;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import data.User;
import tao.min.qi.action.RegistAction;

//此类弃用!!!
//在action中调用此类出先空指针异常
//此类中亦出现空指针异常
//presql.setString(1, RA.getUser().getUsername());

//RA.getUser().getUsername()无法取得前台的值
//问题出现情况尚未解决!!

public class SqlRegist {
PreparedStatement presql;
RegistAction RA=new RegistAction();

public int insert() throws SQLException {
    Connection con = new SqlConnection().getConnection();

    try {
        con.setAutoCommit(false);
        String sql = "INSERT INTO user VALUES(?,?,?)";
        presql = con.prepareStatement(sql);
        presql.setString(1, RA.getUser().getUsername());
        presql.setString(2, RA.getUser().getPass());
        presql.setString(3, RA.getUser().getPhone());
        presql.executeUpdate();
        con.commit();
    } catch (SQLException e) {
        try {
            System.out.println("事务操作失败");
            con.rollback();
            con.setAutoCommit(true);
        } catch (SQLException e1) {
            System.out.println("失败");
            e1.printStackTrace();
        }
    }
    return presql.executeUpdate();

}

}

目前将SqlRegist类中的insert()方法的代码放入action中不会出现空指针异常并且成功运行, 但是如果按照上面的方式在action中调用insert()方法会出现 RA.getUser().getXxx()出现空值, 请问是为什么,是因为action调用inert方法时候在SqlRegist类中实例化了action对象导致了 原先存储的数据丢失了吗?求大神解答!

  • 写回答

2条回答 默认 最新

  • effiu 2016-10-21 00:29
    关注

    RA这个对象,创建对象后,初始化了吗?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站