 |
 |
| 閲覧数:1798 |
掲示板(DB接続で) |
 |
| 名前 |
匿名
|
| 題名 |
DB接続で
|
質問内容
質問を評価する
(0ポイント)
|
初心者でJAVAを勉強し DB接続学習中です 新しいデータを追加したいのですが NAME KANAのところが???になってしまいます なぜか教えていただけると助かります
import java.sql.*;
public class B_DB { public static void main(String[] args) {
String sqlStr;
try { //ドライバクラスをロードする Class.forName("org.gjt.mm.mysql.Driver");
//MySQLに接続 Connection con = DriverManager.getConnection("jdbc:mysql://localhost/****", "***", "****");
//ステートメント生成 Statement stmt = con.createStatement();
String mySql = "insert into TESTTABLE1 values('8', '奥田','オクダ')"; //SQL実行 int num = stmt.executeUpdate(mySql); System.out.println(num + "件のレコードを追加しました。"); //SQL文 sqlStr = "SELECT * FROM TESTTABLE1";
//SQL文実行 ResultSet rs = stmt.executeQuery(sqlStr);
//検索結果数だけループ while(rs.next()){ //レコードの値 int id = rs.getInt("TESTNO"); String name = rs.getString("NAME"); String yomi = rs.getString("KANA");
//表示 System.out.println(id + ":" + name+yomi); }
//クローズ rs.close(); stmt.close(); con.close();
} catch (Exception ex) { } } }
結果
1件のレコードを追加しました。 1:☆☆☆ホシホシホシ 2:山田ヤマダ 3:藤田フジタ 4:岡田オカダ 5:????? 6:????? 7:????? 8:?????
5〜8失敗中です
|
| 質問日時 |
2013-03-25 11:55:54 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
8だけを追加してるように見えますが、その他のデータ は誰が(何が)どうやって入力したものでしょうか?
8のデータ追加をプログラム埋め込みでやってるようで すが、8のデータは毎回変えてるのでしょうか?
あとは、1〜4のデータと5〜8のデータを比較して何 がどう違うのか確認してはどうでしょうか? 実際のデータは何がはいっているのでしょうか?
|
| 回答日時 |
2013-03-25 15:40:33 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
1〜4はコマンドプロンプトで INSERT INTO TESTTABLE1 VALUES (2,'山田','ヤマダ'); INSERT INTO TESTTABLE1 VALUES (3,'藤田','フジタ'); INSERT INTO TESTTABLE1 VALUES (4,'岡田','オカダ'); といった形で入力しました。
その後、イクリプスでDB接続クラスを作り 5〜データを入れようとすると ??と表示されます。 5〜のデータはTESTNO以外 内容は一緒です
|
| 回答日時 |
2013-03-25 16:30:49 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
5〜のデータは同じとは、'奥田','オクダ'を入れようと しているということ? データを変えて実行とかはしていないのでしょうか?
コマンドプロンプトで、SELECT * FROM TESTTABLE1を実行 したらどう表示されるのでしょう?
|
| 回答日時 |
2013-03-25 18:20:45 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
やってみました
mysql> SELECT*FROM TESTTABLE1; +--------+------+------+ | TESTNO | NAME | KANA | +--------+------+------+ | 0 | ??0 | ???0 | | 1 | ??1 | ???1 | | 2 | ??2 | ???2 | | 3 | ??3 | ???3 | | 4 | ??4 | ???4 | | 5 | ??5 | ???5 | | 6 | ??6 | ???6 | | 7 | ??7 | ???7 | | 8 | ??8 | ???8 | | 9 | ??9 | ???9 | +--------+------+------+
それで今の書き込んでいるソースは すこし変更して for(int i = 0; i<10; i++){ db.updateExec("insert into TESTTABLE1(TESTNO,NAME,KANA) values("+i+",'駒田" +i+ "', 'コマダ" +i+ "')");
という感じです 追加はできてるんで 文字化け?をしてるようです・・・・
|
| 回答日時 |
2013-03-25 18:46:09 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(10ポイント)
|
文字コード
|
| 回答日時 |
2013-03-25 19:09:00 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(30ポイント)
|
以下のワードでググってみると良いかも。 java mysql 日本語 文字コード
|
| 回答日時 |
2013-03-25 20:26:47 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
質問者です
できました!!文字化けが原因だったとは・・・ ありがとうございます!
|
| 回答日時 |
2013-03-26 09:50:02 |
|
| 名前 |
匿名
|
回答内容
回答を評価する
(0ポイント)
|
予期しない??は、まず文字化けと思って間違いない。
|
| 回答日時 |
2013-03-26 21:19:29 |
|
質問から6ヶ月以上経過しているので、回答を書き込むことはできません。
|
|
 |
|
 |
 |