アクセス用クラスを利用した登録画面の作成。
DB登録画面をアクセス専用のクラスを利用する形で作成しているのですが、
eclipseのJunitテストを行うとエラーが出てしまいます。
(欲しい値は取れているのですが、その直後に表記されるエラーの原因がよく分かりません。)
↓エラーはこのような内容です。↓
org.postgresql.util.PSQLException: ERROR: 列"id"は型integerですが、式は型character varyingでした
Hint: 式を書き換えるかキャストしなければなりません
以下はソースの一部を抜粋です。
//DBアクセス用クラス。
public final class DataBaseAccess {
・・・・
public void setMultiType(int index, Object value) throws SQLException {
statement.setObject(index, value);}
public void setMultiType(int index, boolean value) throws SQLException {
statement.setBoolean(index, value);}
public void setMultiType(int index, byte value) throws SQLException {
statement.setByte(index, value);}
public void setMultiType(int index, short value) throws SQLException {
statement.setShort(index, value);}
public void setMultiType(int index, int value) throws SQLException {
statement.setInt(index, value);}
public void setMultiType(int index, long param) throws SQLException {
statement.setLong(index, param);}
public void setMultiType(int index, float value) throws SQLException {
statement.setFloat(index, value);}
public void setMultiType(int index, double value) throws SQLException {
statement.setDouble(index, value);}
public ResultSet select() throws SQLException {
return statement.executeQuery();}
public void update() throws SQLException {
statement.executeUpdate();}
・・・・
//登録クラス
public class CustomerEntry{
public void entry(CustomerBean customerBean) {
DataBaseAccess db = new DataBaseAccess();
try {/** DB接続。 */
db.open();
String SQL = "INSERT INTO TB_CUSTOMER VALUES ( ? , ? , ? , ?);";
db.setSql(SQL);
for (int i = 0; i < 11; i++)
{/** ?に値をセット */
db.setMultiType(1, "int id");
db.setMultiType(2, "String userid");
db.setMultiType(3, "String name");
・
・
・
db.setMultiType(11, "String tel");
db.update();
}
db.close();
}
}
}
長文で申し訳ありませんが、ご教授お願いいたします。
お礼
回答ありがとうございます! >どこかでリスナーをシステムに登録する処理があるはずですよね? >その登録しているコードをいじるというのはAndroidのアーキテクチャではやってはいけない、あるいは、設定で定義することなのでソースに手を入れられないなのでしょうか? リスナの登録について、システムサービスのLocationManager を取得したうえで、 requestLocationUpdates()の第4引数に位置情報が変更された時に処理を行うリスナSampleLocationListenerを登録しています。下記のとおりです。 requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new SampleLocationListener()); だから、ソースに手は入れられないと思います。(回答になってますでしょうか?) >もしその箇所をいじることができないなら、現在の位置情報リスナーを取得するメソッドはありませんか?もしあったならば、そのメソッドで取得したリスナーから位置情報が取り出せると思います。 すいません、勉強不足でこのアドバイスは意味がよくわかりません。。。 2回も回答していただきありがとうございます! もう少し勉強してみます! もし何かアドバイスがあったらよろしくお願いします!