![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
txt1.setText(15,200)
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
// **接続情報**
String drv = "org.postgresql.Driver";
String url = "jdbc:postgresql:postgres";
String usr = "postgres";
// **DBへの接続、問合せ**
Class.forName(drv);
Connection cn = DriverManager.getConnection(url, usr, pw);
Statement st = cn.createStatement();
String qry1 = "INSERT INTO getuji (数字) VALUES ( "+ txt1.getText() + ");";
st.executeUpdate( qry1 );
// **DB切断**
st.close();
cn.close();
}
catch(Exception f){f.printStackTrace();}
}
});
txt1にカンマの付いている数字を入れるとエラーが出てしまいます。
カンマがなければエラーが起きないのですが何か良い方法はないでしょうか?
DBのgetuji表のテーブル(数字)のデータ型はintegerです。なのですがこれを変えた方がいいのでしょうか?
わかる方がいらっしゃいましたらよろしくお願いします。
No.1ベストアンサー
- 回答日時:
拙者なら、txt1にメソッドを追加して、
> String qry1 = "INSERT INTO getuji (数字) VALUES ( "+ txt1.getText() + ");";
を
String qry1 = "INSERT INTO getuji (数字) VALUES ( "+ txt1.getInt() + ");";
とします。
getInt()の中は、
----------------------------------------------------------------------
public int getInt() {
String a = null;
String b = null;
Integer c = null;
int d = 0;
a = getText();
if (a == null || a.equals("")) {
return 0;
}
b = a.replace(",", ""); // カンマ除去
try {
c = Integer.parseInt(b);
d = c.intValue();
} catch (NumberFormatException ex) {
d = 0;
}
return d;
}
----------------------------------------------------------------------
のような感じでよいんじゃないかな。
そう言う話じゃなくて?
ありごとうございます!!こんなやり方があったんですね~。
getInt()なんてものがあるなんて。。。もっと勉強しないと、ですね。
どうもありがとうございました。
No.2
- 回答日時:
DBのデータ型を文字型にすればOKです。
ただ、数値項目なので数値型にした方が綺麗です。(一般的)
ですので、
登録前にカンマを取り除き、取得(表示)時にはカンマ編集する、というの定石手段です。
YanchさんのようにTextFieldを拡張するのもあり(その方がスッキリ)ですが、
StringUtilクラスのようなものを作成し、
登録前に、deleteComma()メソッドを呼び出し、
取得(表示)時にgivingComma()を使用する
いかがでしょうか?
String qry1 = "INSERT INTO getuji (数字) VALUES ( "+ StringUtil.deleteComma(txt1.getText()) + ");";
<参考ソース>
import java.text.DecimalFormat;
public class StringUtil {
public static String givingComma(String target) {
DecimalFormat formatter = new DecimalFormat("#,###");
return formatter.format(deleteComma(target));
}
public static int deleteComma(String target) {
int rtnValue = 0;
if (target == null || target.equals("")) {
return rtnValue;
}
String work = target.replaceAll(",", "");
try {
rtnValue = Integer.parseInt(work);
} catch (NumberFormatException ex) {
return rtnValue;
}
return rtnValue;
}
}
この回答への補足
ありがとうございます。カンマだけをつけたり消したりできるんですね・・・・ちょっとカンマと違うのですがdeleteComma()やgivingComma()は、
MaskFormatter mf1 = null;
try{
mf1 = new MaskFormatter("###:##");
}catch(ParseException pe){}
final JFormattedTextField txt27 = new JFormattedTextField(mf1);
としている「:」に対しても同様のことができるのでしょうか?最初の質問と少しずれているのですが、お聞きしてよいでしょうか・・・新しく上げた方がいいのかな・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Java java final 1 2022/06/10 22:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
SQLException getNextException()
-
WebClient()以外でネットにアク...
-
VBA 400エラー 1004エラー
-
グローバル初期化されるインス...
-
C# マルチスレッドにおける例外...
-
初回例外
-
VBA Evaluate関数 型が一致しま...
-
メソッドが存在するかどうかの...
-
サーブレットからJSPの呼び出し...
-
スタックオーバーフローとは?
-
C#についての質問です。今週中...
-
オープンアプリにおける、テキ...
-
ADOによるレコードの追加/更新
-
C# 2010 レジストリのRUNに...
-
Timestamp型への変換について(J...
-
おススメのJavaScriptエディタ
-
例外の可能性は、MSDNライブラ...
-
Bean→JSPでの文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
時間の取得
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
数字か文字列かを判定する関数
-
String型の日付(2005/11/25)の...
-
VBA Evaluate関数 型が一致しま...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
文字列が数字のみで構成されて...
-
Timestamp型への変換について(J...
-
例外ってIf文の中に入れますか...
-
全角スペースのチェックについて
-
ファイルダイアログを開いた時...
-
C# マルチスレッドにおける例外...
-
VBA 400エラー 1004エラー
-
nullで、return出来るのはどん...
-
C#の捕捉されない例外処理の対...
-
C# UriFormatExceptionの回避
おすすめ情報