这是一个电话簿,显示的错误信息是:
Exception in thread "main" java.lang.NullPointerException
at ContactDA.add(ContactDA.java:48)
at Contact.add(Contact.java:25)
at Tester.main(Tester.java:9)
其中ContactDA.java:48是phoneNum=aPhone.getPhoneNum();是添加信息中的,aPhone的方法不能用啊……其他的25和9分别是Contact类中的add()和Tester中的add()是什么问题呢?求指教~~~
下面是我的DA类,add()就是添加信息的那个
import java.sql.*;
public class ContactDA {
static String url="jdbc:odbc:myDataSource";
static Connection aConnection;
static Statement aStatement;
static String contactID,name;
static String type,phoneNum;
static Contact aContact;
static Phone aPhone;
public static Connection initialize(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
aConnection=DriverManager.getConnection(url,"","");
aStatement=aConnection.createStatement();
}
catch(ClassNotFoundException e){
System.out.println(e);
}
catch(SQLException e){
System.out.println(e);
}
return aConnection;
}
//释放所用系统资源
public static void terminate(){
try{
aStatement.close();
aConnection.close();
}
catch(SQLException e){
System.out.println(e);
}
}
//添加信息
public static void add(Contact aContact,Phone aPhone)throws DuplicateException{
contactID=aContact.getContactID();
name=aContact.getName();
phoneNum=aPhone.getPhoneNum();
type=aPhone.getType();
String sql1="INSERT INTO ContactT(ContactID,Name)"+"VALUES('"+contactID+"','"+name+"')";
String sql2="INSERT INTO PhoneI(Type,PhoneNum,contID)"+"VALUES('"+type+"','"+phoneNum+"','"+contactID+"')";
System.out.println(sql1);
System.out.println(sql2);
try{
Contact c=find(contactID);
throw(new DuplicateException("该联系人已存在!"));
}
catch(NotFoundException e){
try{
int result1=aStatement.executeUpdate(sql1);
int result2=aStatement.executeUpdate(sql2);
}
catch(SQLException ee){
System.out.println(ee);
}
}
}
//删除信息
public static void delete(Contact aContact){
contactID=aContact.getContactID();
String sql1="DELETE FROM ContactT"+" WHERE ContactID='"+contactID+"'";
String sql2="DELETE FROM PhoneT"+" WHERE ContID='"+contactID+"'";
System.out.println(sql1);
System.out.println(sql2);
try{
int result1=aStatement.executeUpdate(sql1);
int result2=aStatement.executeUpdate(sql2);
}
catch(SQLException e){
System.out.println(e);
}
}
//修改信息
public static void update(Contact aContact)throws NotFoundException{
name=aContact.getName();
contactID=aContact.getContactID();
String sql="UPDATE UserT SET Name='"+name+"'"+"WHERE ContactID='"+contactID+"'";
try{
Contact c=find(contactID);
int result=aStatement.executeUpdate(sql);
}
catch(SQLException e){
System.out.println(e);
}
}
//查找信息
public static Contact find(String key)throws NotFoundException{
aContact=null;
String sql="SELECT ContactID,Name FROM ContactT WHERE ContactID='"+key+"'";
System.out.println(sql);