当前位置: 代码迷 >> Eclipse >> 数据库访问,该如何处理
  详细解决方案

数据库访问,该如何处理

热度:60   发布时间:2016-04-23 02:04:31.0
数据库访问
这是一个电话簿,显示的错误信息是:
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);
  相关解决方案