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]