- PR -

eclipseからMySQL JDBCドライバを認識させたい件

投稿者投稿内容
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2009-02-16 17:57
こんにちわ〜。美那です。
今回も愚問に近いのですが、1日中かけてもできなかったので、有識者の方が
おられましたらご教授戴きたく思います。

現在、eclipseは「All-In-One Eclipse」を使用しております。
(Eclipse SDK バージョン: 3.2.0です。)

■質問
JDBCによるデータベースの利用したいため、MySQL JDBCドライバを
認識させたいのですが、教本通りに行かずに困ってます。
(MySQLのVersionは5.0です。)

ドライバは…「mysql-connector-java-5.1.6-bin.jar」です。

ですが、それ以前に接続設定で、<ファイル><新規><その他>メニューから
「ウィザード選択」画面を呼出し、画面で「接続プロファイル」→「接続プロファイル」を
選択すると、「新規接続プロファイル」画面が呼び出されます。
「SQLモデル-JDBC接続」を選択すると、名前が聞かれ、名前の入力後に使用可能なドライバを選択することとなるんですが、MySQLの4.0と4.1しかありません。

MySQLはVersion5.0でJDBCドライバは5.1.6なので、5.1を選択しなくてはならないのですが、
これはEclipseのアップデート等が必要なのでしょうか?

Eclipse自体のVersionは3.2ですし、そんなに古いVersionだとは思っていないのですが、
そういう問題ではないのでしょうか?
さらにall-in-oneでのインストールなので、データベースを使用できる環境も整っていると
考えてます。


DOS窓ではログインし、データベースやテーブルを作成できたりできます。
なので、MySQL本体には問題ないと考えております。


お忙しいかと思いますが、他に確認するべき内容など、指摘などありましたら、ご教授
頂ければと思います。
宜しくお願い致します。
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2009-02-16 18:15
>MySQL JDBCドライバを認識させたい
これが何をしたいのかが理解しかねます。
通常はプロジェクト単位でDBアクセスが必要なプロジェクトに対し、JDBCドライバのjarを拡張ライブラリとして設定すれば、「JDBCドライバを認識する」という意味かと思います

ウィザードで作成しようとしているモノはなんでしょう?
「その他」で何を作成しようとしているのか、ごらんになっている本が解りませんので知るすべがありませんよ。

尚、Eclipse3.2とMySQL5は同じくらいの時期にリリースされているので、ウィザードに含まれていない可能性はありますね。
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2009-02-16 18:51
わたなべさん、お返事有難う御座います。

引用:

>MySQL JDBCドライバを認識させたい
これが何をしたいのかが理解しかねます。
通常はプロジェクト単位でDBアクセスが必要なプロジェクトに対し、JDBCドライバのjarを拡張ライブラリとして設定すれば、「JDBCドライバを認識する」という意味かと思います

ウィザードで作成しようとしているモノはなんでしょう?
「その他」で何を作成しようとしているのか、ごらんになっている本が解りませんので知るすべがありませんよ。

尚、Eclipse3.2とMySQL5は同じくらいの時期にリリースされているので、ウィザードに含まれていない可能性はありますね。


すみません。
色々と知識の差に問題があるようで、お手数をお掛けしてしまっているみたいで…

>>JDBCドライバのjarを拡張ライブラリとして設定すれば、「JDBCドライバを認識する」という意味かと思います
確認ですが、わたなべさんが言われているのは「jarファイルをライブラリとして登録して
おけば、それと同義ではないの?」という意味でしょうか?

「mysql-connector-java-5.1.6-bin.jar」は外部ライブラリとして追加しているのですが、
それだけではダメで、今回の件のような作業が必要なのだと思ってます。

>>ウィザードで作成しようとしているモノはなんでしょう?
私の中で、「mysql-connector-java-5.1.6-bin.jar」は外部ライブラリとして追加し、
今回のような作業を行わなければJDBCドライバとして認識されないものだと思ってます。

なので、本ウィザードで作成しようとしているものは、MySQLと接続させるために
JDBCドライバを認識させるための作業と考えてます。



なんかまた私は勘違いをしているような気がしてきました。。。
あとは拙い文章で申し訳ありません。


有難う御座いました。
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2009-02-16 19:05
1.プロジェクトを作成する
2.libフォルダを作成する
3.libフォルダに追加するJarファイルを配置する
4.プロジェクトのプロパティからJavaビルドパスの「ライブラリ」を開き、「Jarを追加する」からJarファイルを選択する

一番簡単に拡張ライブラリ(Jar)を使用する方法です。
Eclipseでいう「ライブラリ」とは、再利用する為にJarのセットを登録する機能です。どちらを利用しても構いませんが、プロジェクトフォルダにlibを作成して管理する方が分かりやすいのでしょう。
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2009-02-16 19:30
わたなべさん、お返事有難う御座います。
すでに最初の質問内容は完全に意味不明ですよね。。。

引用:

1.プロジェクトを作成する
2.libフォルダを作成する
3.libフォルダに追加するJarファイルを配置する
4.プロジェクトのプロパティからJavaビルドパスの「ライブラリ」を開き、「Jarを追加する」からJarファイルを選択する

一番簡単に拡張ライブラリ(Jar)を使用する方法です。
Eclipseでいう「ライブラリ」とは、再利用する為にJarのセットを登録する機能です。どちらを利用しても構いませんが、プロジェクトフォルダにlibを作成して管理する方が分かりやすいのでしょう。


確認してよろしいでしょうか?
要するにプロジェクトに「mysql-connector-java-5.1.6-bin.jar」を追加すると
MySQLと接続できるよ?という意味なのでしょうか?


そうなるとイマイチ分からないのが、「接続プロファイル」って結局なだったんだろう?
と思ってます。


有難う御座いました。
やまだ
会議室デビュー日: 2009/01/14
投稿数: 8
投稿日時: 2009-02-17 09:14
美那さんがおっしゃっている「接続プロファイル」というのはeclipse上で
データベースを直接操作(テーブル作成やデータ変更等)するために必要な作業では?

アプリからデータベースに接続するだけなのであれば必要ないと思います。

美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2009-02-17 09:42
未記入さん、おはようございます。

引用:

美那さんがおっしゃっている「接続プロファイル」というのはeclipse上で
データベースを直接操作(テーブル作成やデータ変更等)するために必要な作業では?

アプリからデータベースに接続するだけなのであれば必要ないと思います。


そういうことですか!?
確かにeclipse上でテーブルの生成やカラム設定したいですね。



今のままではあまりにも私と回答して下さっている方たちの間に技術的差が
あり過ぎてるようなので、もう少し自分で頑張ってみます。
今回の問題はとどのつまり「あるeclipseでのプロジェクトでMySQLを使用したいのですが、
どーすればMySQLと接続できてデータの生成や変更を行うことができるんですか?」という
あまりにも漠然過ぎる内容に変わっちゃってますしね。


でも、ようやくeclipse上でMySQLが使える状態になってきたみたいです。
これから操作してみますけども。


未記入さん、わたなべさん、有難う御座いました。
また、愚問な質問をしてしまうかもしれませんが、機会がありましたら宜しくお願い致します。
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2009-02-17 16:17
こんにちわ。
新スレを立てるほどの質問でもないので、追記でここに記載したいと思います。

☆☆☆上記までの質問/回答とは全く関係ありません。☆☆☆


■タイトル
Webアプリで日本語表記(2バイトコード)にできない件

■状況
text入力箇所に日本語(2バイトコード)を入力しても、[?????]と表示されてしまいます。
→ユーザ追加の[名前][魔道師ランク]のtextフィールドに日本語を入力し、[登録]ボタンを
押下すると、DBMSに登録はされるのですが、表記が[?????]となってしまいます。
"Shift_JIS"だとダメなのでしょうか?

<ウィンドウ><設定>→<WebおよびXML><JSPファイル>のエンコードもShiftJISを
指定しています。

環境:
eclipse(Ver 3.2)
MySQL(Ver 4.1)

一部ソースを展開します。

★★★admin.jspファイル(Main)★★★
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ page pageEncoding="Shift_JIS" %>
<%@ page import="java.sql.*" %>
<title>時空管理局 起動六課</title>
</head>
<body>
<h3>時空管理局 起動六課</h3>
<%
// ドライバのロード(指定したパッケージのクラスをメモリにロード)
// com.mysql.jdbc.DriverはMySQLのドライバ
Class.forName("com.mysql.jdbc.Driver");
// データベースへ接続
Connection member = DriverManager.getConnection(
"jdbc:mysql://localhost/ivory",
"root",
"haruhi");

// SQLステートメントをデータベースに送信するための
// SQLServerStatementオブジェクト作成
Statement state = member.createStatement();

// memberテーブルからレコード取得
ResultSet result = state.executeQuery("select * from member");

out.println("<table border=1>");
out.println("<tr>");
out.println("<td>ID</td>");
out.println("<td>名前</td>");
out.println("<td>魔道師ランク</td>");
out.println("</tr>");

while(result.next())
{
// テーブルmemberの1レコードの各カラムを取得
String id = result.getString("memid");
String mname = result.getString("mname");
String rank = result.getString("rank");

// 取得したカラムを表示処理
out.println("<tr>");
out.println("<td>"+ id +"</td>");
out.println("<td>"+ mname +"</td>");
out.println("<td>"+ rank +"</td>");
out.println("</tr>");
}
out.println("</table>");

// 切断処理
result.close();
state.close();
member.close();
%>

<hr>
<h4>ユーザの追加</h4>
<form name=frm1 action=addmember.jsp method=POST>
ID:<input type=text name=memid><br>
名前:<input type=text name=mname><br>
魔道師ランク:<input type=text name=rank><br>
<input type=submit value="登録" name=btn_add>
</form>

<hr>
<h4>ユーザの削除</h4>
<form name=frm1 action=delmember.jsp method=POST>
ID:<input type=text name=memid><br>
<input type=submit value="削除" name=btn_del>
</form>

</body>
</html>

★★★addmember.jspファイル★★★
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page pageEncoding="Shift_JIS" %>
<%@ page import="java.sql.*" %>
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("Shift_JIS");

String strid = request.getParameter("memid");
String name = request.getParameter("mname");
String rank = request.getParameter("rank");

int id = 0;

try
{
id = Integer.parseInt(strid);
}
catch (Exception ex1)
{

}

// ドライバのロード(指定したパッケージのクラスをメモリにロード)
// com.mysql.jdbc.DriverはMySQLのドライバ
Class.forName("com.mysql.jdbc.Driver");
// データベースへ接続
Connection member = DriverManager.getConnection(
"jdbc:mysql://localhost/ivory?characterEncoding=SJIS",
"root",
"haruhi");

// SQLステートメントをデータベースに送信するための
// SQLServerStatementオブジェクト作成
Statement state = member.createStatement();

try
{

int res = state.executeUpdate(
"insert into member (memid,mname,rank) values( " +
id + ",'"+ name + "','" + rank +"');"
);
}
catch (Exception ex2)
{

}
finally
{
state.close();
pageContext.forward("admin.jsp");
}
%>
</body>
</html>
-------------------------------------------------------------------------

すいません。
この2バイトコードの問題も割と愚問に近い質問だと思うのですが、おヒマな方で
有識者の方がおりましたら、ご教授下さい。

よろしくおねがいいたします。



[ メッセージ編集済み 編集者: 美那 編集日時 2009-02-17 16:18 ]

スキルアップ/キャリアアップ(JOB@IT)