MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » struts2 向mysql输入数据时出错:java.lang.NullPoi

struts2 向mysql输入数据时出错:java.lang.NullPointerException解决方案

www.MyException.Cn  网友分享于:2013-06-16  浏览:21次
struts2 向mysql输入数据时出错:java.lang.NullPointerException
谁能帮我看一下,这些代码是否有错,这个是运行孙鑫《struts2深入详解》的例子时候发生的错误,首先数据库是mysql,mysql的驱动已经被放置到tomcat的lib目录下了,主要有三个java源代码,很可能有错,但是好多地方我看不懂代码的意思,所以不知道错在哪里。现在我把代码贴出如下:

1.Uer.java

package org.hhsh.struts2.action;

import java.util.Date;

import org.hhsh.struts2.persistence.dao.UserDao;
import org.hhsh.struts2.persistence.entity.User;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport
{
private static final long serialVersionUID = 3970199804617664569L;
private User user;
private UserDao userDao;

/**
* 在构造方法中初始化UserDao对象
*/
/*public RegisterAction()
{
userDao = new UserDao();
}*/

public void setUserDao(UserDao userDao)
{
this.userDao = userDao;
}

/**
* 请求register!default.action,调用doDefault方法
*/
//@Override
public String doDefault() throws Exception
{
return INPUT;
}

/**
* 调用UserDao的register方法注册用户
*/
//@Override
public String execute() throws Exception
{
user.setRegDate(new Date()); //注意不要忘了设置注册日期
userDao.register(user);
return SUCCESS;
}

/**
* 为user对象提供getter方法
* @return
*/
public User getUser()
{
return user;
}

/**
* 为user对象提供setter方法
* @param user
*/
public void setUser(User user)
{
this.user = user;
}


}

2.UserDao.java
package org.hhsh.struts2.persistence.dao;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.hhsh.struts2.persistence.entity.User;

public class UserDao
{
private DataSource dataSource;

/**
* 在构造方法中初始化数据源对象。
*/
public UserDao()
{
Context ctx;
try
{
ctx = new InitialContext();
dataSource=(DataSource)ctx.lookup("java:comp/env/jdbc/test");
}
catch (NamingException e)
{
e.printStackTrace();
}
}

/**
* dataSource的访问器方法。
* @return 数据源对象
*/
public DataSource getDataSource()
{
return dataSource;
}

/**
* 实现用户注册功能,将用户信息保存到数据库表reg_user中。
* @param user User对象,保存了用户提交的注册信息
* @return 注册成功后的User对象
*/
public User register(User user) throws SQLException
{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
conn=getDataSource().getConnection();

String sql="insert into reg_user(username,password,sex,email,pwd_question,pwd_answer,reg_date) values(?,?,?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
int index=0;
pstmt.setString(++index, user.getUsername());
pstmt.setString(++index, user.getPassword());
pstmt.setBoolean(++index, user.getSex());
pstmt.setString(++index,user.getEmail());
pstmt.setString(++index, user.getPwdQuestion());
pstmt.setString(++index, user.getPwdAnswer());
pstmt.setTimestamp(++index, new java.sql.Timestamp(user.getRegDate().getTime()));

pstmt.execute();
//读者需注意:在多用户的并发访问中,获取的自增长id值可能不正确。
rs=pstmt.executeQuery("select last_insert_id()");
if(rs.next())
user.setId(rs.getInt(1));
else
{
return null;
}
}
catch (SQLException e)
{
throw e;
}
finally
{
closeResultSet(rs);
closePreparedStatement(pstmt);
closeConnection(conn);
}

文章评论

老程序员的下场
老程序员的下场
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Java程序员必看电影
Java程序员必看电影
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
编程语言是女人
编程语言是女人
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
我的丈夫是个程序员
我的丈夫是个程序员
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
每天工作4小时的程序员
每天工作4小时的程序员
那些争议最大的编程观点
那些争议最大的编程观点
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员的鄙视链
程序员的鄙视链
旅行,写作,编程
旅行,写作,编程
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
一个程序员的时间管理
一个程序员的时间管理
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员和编码员之间的区别
程序员和编码员之间的区别
为什么程序员都是夜猫子
为什么程序员都是夜猫子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员应该关注的一些事儿
程序员应该关注的一些事儿
 程序员的样子
程序员的样子
10个调试和排错的小建议
10个调试和排错的小建议
中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
鲜为人知的编程真相
鲜为人知的编程真相
如何成为一名黑客
如何成为一名黑客
程序员必看的十大电影
程序员必看的十大电影
漫画:程序员的工作
漫画:程序员的工作
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
总结2014中国互联网十大段子
总结2014中国互联网十大段子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有