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 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算