首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

【求相助】初学用java编写一个指纹考勤程序

2012-09-03 
【求帮助】初学用java编写一个指纹考勤程序package service.accountimport java.sql.PreparedStatementimp

【求帮助】初学用java编写一个指纹考勤程序
package service.account;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import bean.account.FingerPrintInfos;
import database.Conn;

public class FingerInfosBean {
private Conn conn= null;
private Integer UserId;
private FingerPrintInfos[] FPIOS;

public FingerInfosBean()
{
conn= new Conn();
}

public int getUserId() {
return UserId;
}
public void setUserId(Integer userId) {
UserId = userId;
}
public void test()
{
System.err.println("UserId="+getUserId());
}

public FingerPrintInfos[] getUserFingerPrintInfos()
{
if(UserId>0)
{
try{
/*String sql= "select TEMPLATEID,FINGERID,DivisionFP from TEMPLATE where USERID=?";
PreparedStatement pstmn= conn.getPstmn(sql);
pstmn.setInt(0,UserId);
ResultSet Rs= pstmn.executeQuery();*/

String sql= "select TEMPLATEID,FINGERID,DivisionFP from TEMPLATE where USERID="+UserId;
ResultSet Rs= conn.executeQuery(sql);

int i=0;
while(Rs.next())
{
FPIOS[i] = new FingerPrintInfos();
FPIOS[i].setFingerPrintId(Rs.getInt("TEMPLATEID"));
FPIOS[i].setFingerNum(Rs.getInt("FINGERID"));
FPIOS[i].setDivisionFP(Rs.getInt("DivisionFP"));
FPIOS[i].setUserId(UserId);
i++;
}
}catch(SQLException e)
{
e.printStackTrace();
}
return FPIOS;
}else
return null;
}

}
这段程序已经调试了好久了,始终没起色,好悲剧。
在运行到红字代码处,出现 java.lang.NullPointerException 异常,之前在构造函数那声明10个对象,这里后面的代码也会出错,不知道为啥,明明已经声明了,可还是会 java.lang.NullPointerException。请大家帮我看下是哪里的问题,因为这样子的程序后面还会遇到好多的。

[解决办法]
FingerPrintInfos[] FPIOS 没有指定初始化多少个 数组必须指定初始大小,并且一旦指定不能更改了就。
如 FingerPrintInfos[] FPIOS = new FingerPrintInfos[3];
如果不知道大小或者每次查询都不一样 建议改为list 或者先查询多少条记录,再初始化大小
[解决办法]
指针乃万恶之源!!
个数不固定就不要用数组呀!
Array多好用呀!

热点排行