mysql:13159
From: endo <endo <endo@xxxxxxxxxx>>
Date: Wed, 12 Jul 2006 15:16:53 +0900
Subject: [mysql 13159] JDBCドライバーを使用して遠隔からDB操作
初めまして、Jackと申します。 まだまだ初心者の域を脱しておりませんが、よろしくお願い致します。 Java Swingアプリ上からSQLを発行してMySQL5.0.11のデー タを操作し 結果を表示させるアプリを作成しております。 localhost上は軽快に動くのですが、ネットワーク越しにデータ操作を すると ものすごく重く遅くなることが判明しました。 基本的にデータを必要としない操作に関してはそれほど動きは悪くない ので Swingアプリ自体に問題はないと思います。 JDBCドライバー:mysql-connector-java-3.1.10-bin.jar 環境としましては DBサーバー:Windows XP MySQL 5.0.11 IP(例) 192.168.0.5 クライアント: Windows XP IP(例) 192.168.0.6 JavaのClassフォルダー内に JDBCドライバー mysql-connector-java-3.1.10-bin.jar を置いて、 >Java -classpath ".;.\mysql -connector-java-3.1.10-bin.jar" Login (Enter) でLogin.classを起動しております。 そこでお聞きしたい事は、JDBCドライバーはネットワーク越しで はパフォーマンス がかなり落ちるのでしょうか? それともMySQLの設定、JDBCの使い方に問題があるので しょうか? 以下、接続に必要なJavaソースファイルの部分ですがおそらく オーソドックスだと思います。 よろしくお願い致します。 ------ import java.sql.*; import java.sql.Connection; import java.sql.ResultSet; public class MySQLManager implements DatabaseManager { private Connection con = null; private Statement stmt = null; private ResultSet rs = null; public void openResource() { //String url = "jdbc:mysql://localhost/kahns"; String url = "jdbc:mysql://192.168.0.5:3306/(データベース名)"; String param = "?userUnicode=true&characterEncoding=sjis"; String usr = "myuser"; String pwd = "********"; //JDBCドライバーのロード try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //接続の確立 con = DriverManager.getConnection(url + param, usr, pwd); //ステートメントの取得 stmt = con.createStatement(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void closeResource() { if (stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } public ResultSet getData(String sql) { if (stmt != null){ try { rs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } } return rs; } public void addData(String sql) { if (stmt != null){ try { con.setAutoCommit(false); stmt.executeUpdate(sql); con.commit(); } catch (SQLException e) { try { con.rollback(); throw new RuntimeException("データの登録が失敗しました。"); } catch (SQLException e1) { e1.printStackTrace(); } } } } }
-> 13159 2006-07-12 15:16 [endo <endo@xxxxxxxxx] JDBCドライバーを使用して遠隔からDB操作 13161 2006-07-12 18:39 ┗[Tetsuro IKEDA <te.ik] 13162 2006-07-12 19:37 ┗[endo <endo@xxxxxxxxx] 13163 2006-07-19 22:09 ┗[info2 <info2@xxxxxxx] 商品コードについて 13164 2006-07-19 22:31 ┣[Yoshiyuki SATO <sato] 13166 2006-07-20 09:06 ┃┗[info2 <info2@xxxxxxx] 13169 2006-07-20 09:45 ┃ ┣["F.Y" <fumi_sby@xxxx] 13170 2006-07-20 09:52 ┃ ┣["F.Y" <fumi_sby@xxxx] 13173 2006-07-20 10:15 ┃ ┃┗[Yasufumi Yamagami <y] 13171 2006-07-20 10:14 ┃ ┣[濱口産婦人科 広津 <] 13174 2006-07-20 10:27 ┃ ┗["MIKAHOSI" <mikahosi] 13165 2006-07-19 22:45 ┣[忠犬 KEN <ken_ken_19] 13167 2006-07-20 09:32 ┣[tatematsu <tatemax@x] 13168 2006-07-20 09:35 ┣["F.Y" <fumi_sby@xxxx] 13172 2006-07-20 10:15 ┣["片寄白王" <katayose] 13175 2006-07-20 10:39 ┗[柴田 和久 <yumeya21@] 13176 2006-07-20 17:22 ┗["TANAKA Masayuki" <t] 13177 2006-07-20 23:12 ┗[info2 <info2@xxxxxxx]