Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

eclipceでデータベース

始めまして、天和といいますよろしくお願いします今、
javaで以下のソースコードをeclipse起動してデータベー
スを表示させようとしているのですが.

import java.sql.*;

public class SampleP1
{
   public static void main(String[] args)
   {
      try{
         //接続の準備
         String url = 
"jdbc:derby:fooddb;create=true";
         String usr = "";
         String pw = "";

         //データベースへの接続
         Connection cn = 
DriverManager.getConnection(url, usr, pw);

         //問い合わせの準備
         DatabaseMetaData dm = cn.getMetaData();
         ResultSet tb = dm.getTables(null, null, 
"果物表", null);

         Statement st = cn.createStatement();

         String qry1 = "CREATE TABLE 果物表(番号 
int, 名前 varchar(50), 取扱店 varchar(50))";
         String[] qry2 = {"INSERT INTO 果物表 
VALUES (1,'みかん','青山商店')",
                          "INSERT INTO 果物表 
VALUES (2,'りんご','東京市場')",
                          "INSERT INTO 果物表 
VALUES (3,'バナナ','鈴木貨物')",
                          "INSERT INTO 果物表 
VALUES (4,'いちご','東京市場')",
                          "INSERT INTO 果物表 
VALUES (5,'なし','青山商店')",
                          "INSERT INTO 果物表 
VALUES (6,'栗','横浜デパート')",
                          "INSERT INTO 果物表 
VALUES (7,'モモ','横浜デパート')",
                          "INSERT INTO 果物表 
VALUES (8,'びわ','佐藤商店')",
                          "INSERT INTO 果物表 
VALUES (9,'柿','青山商店')",
                          "INSERT INTO 果物表 
VALUES (10,'スイカ','東京市場')"};
         String qry3 = "SELECT * FROM 果物表";

         if(!tb.next()){
            st.executeUpdate(qry1);
            for(int i=0; i<qry2.length; i++){
               st.executeUpdate(qry2[i]);
            }
         }

         //問い合わせ
         ResultSet rs = st.executeQuery(qry3);

         //データの取得
         ResultSetMetaData rm = rs.getMetaData();
         int cnum = rm.getColumnCount();
         while(rs.next()){
            for(int i=1; i<=cnum; i++){
                
System.out.print(rm.getColumnName(i) +  ":"+ 
rs.getObject(i) + "  ");
            }
            System.out.println("");
         }

         //接続のクローズ
         rs.close();
         st.close();
         cn.close();
      }
      catch(Exception e){
         e.printStackTrace();
      }
   }
}








起動しようとすると以下のエラーが出ます
ava.sql.SQLException: No suitable driver found for 
jdbc:derby:fooddb;create=true
    at 
java.sql.DriverManager.getConnection(DriverManager.
java:602)at 
java.sql.DriverManager.getConnection(DriverManager.
java:185)at DBpack.SampleP1.main(SampleP1.java:18)
一応JBDCを追加するためにプロパティ→Javaのビルドパ
ス→外部jar追加→mysql-connector-java-5.1.18-
bin.jarとやってんですが・・・

4

回答

5443

閲覧

4件の回答

評価

0

どこかのサンプルコードを引っ張ってきたのだろうか?
DriverManager.getConnection()でConnectionを取る場合、どこのサンプルでも先にやってることがあると思うが。

評価

0

データベースのURLにはderbyを指定しているのに、
MySQLのドライバー入れても。

使いたい方に合わせてください。

Derbyが使いたいなら、明示的にderby.jarをクラスパスに入れなきゃダメだし、
MySQLを使いたいなら、MySQL用にURLを書いてください。
http://dev.mysql.com/doc/refman/5.1/ja/connector-j-reference-configuration-properties.html

$さん
Class.forNameだったら、JDBC4.0(Java6)から不要になりました。
jarのMETA-INF/services/の中にjava.sql.Driverのサービスプロバイダーが指定されているので、自動的にロードされます。

評価

0

>Class.forNameだったら、JDBC4.0(Java6)から不要になりました。
それは知らなかった。了解。

評価

0

おかげさまで解決しましたありがとうございます

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。