JDTS ドライバーで Eclipse を使用しています。MySQL データベースに行を挿入しようとしています。接続とステートメントは問題なく生成されます (と思います)。ただし、executeUpdate メソッドを実行すると、null ポインター例外が発生します。
DB への接続を処理する DBclient クラスがあり、次にすべての関連情報を収集して挿入メソッドに提供する Uploader クラスがあります。
私の DBclient クラス:
public class DBclient {
String driver="net.sourceforge.jtds.jdbc";
String URL="xxxx";
String user="xxxx";
String pass="xxxx";
Connection connection;
Statement statement;
ResultSet rs;
public void connect() throws SQLException
{
try {
Class.forName(driver);
}//try
catch (ClassNotFoundException e)
{
e.printStackTrace();
}//catch
try {
connection=DriverManager.getConnection(URL, user, pass);
statement=connection.createStatement();
} //try
catch (SQLException e)
{
e.printStackTrace();
}//catch
}//connect
public void insertToDB(String sqlstatement) throws SQLException
{
int i=statement.executeUpdate(sqlstatement);
}
}//DB クライアント
そして、私の Uploader クラス
private String testinsert="insert into xxxx (Latitude, Longitude) values (1, 2)";
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.uploader);
initialize();
getaddress();
update();
try {
client.insertToDB(testinsert);
} catch (SQLException e) {
// TODO Auto-generated catch block
Toast t=Toast.makeText(getApplicationContext(), "oops", 4);
t.show();
}
}//onCreate
public void initialize()
{
client = new DBclient();
geocoder = new Geocoder(this);
Bundle coords = getIntent().getExtras();
street = (TextView) findViewById(R.id.street);
town = (TextView) findViewById(R.id.town);
state = (TextView) findViewById(R.id.state);
country = (TextView) findViewById(R.id.country);
lat=coords.getDouble("Latitude");
lon=coords.getDouble("Longitude");
}//initialize
public void update()
{
street.setText(address.getAddressLine(0));
town.setText(address.getLocality());
state.setText(address.getAdminArea());
country.setText(address.getCountryName());
}//update
public void getaddress()
{
try
{
addresslist = geocoder.getFromLocation(lat, lon, 1);
} //try
catch (IOException e)
{
Toast t=Toast.makeText(getApplicationContext(), "Input Error", 2);
t.show();
}//catch
address=addresslist.get(0);
}
}//アップローダ
Null ポインター例外は、DBclient クラスの insertToDB() メソッドからスローされます。
どんな助けでも大歓迎です。