質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1649閲覧

Java JDBCのjarファイル指定について

retantaro

総合スコア15

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/10/05 05:04

編集2021/10/05 05:27

Java

1import java.sql.Connection; 2import java.sql.DriverManager; 3import java.sql.PreparedStatement; 4import java.sql.ResultSet; 5import java.sql.SQLException; 6import java.util.ArrayList; 7import java.io.IOException; 8import java.sql.Statement; 9 10public class DBExecQuery { 11 public static void main(String[] args) { 12 13 if (args.length!=0) { 14 int linePopulation = Integer.parseInt(args[0]); 15 System.out.println(linePopulation); 16 17 try( 18 // DB接続 19 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//172.16.4.6:1521/infopdb", "uenoa", "uenoa"); 20 // ユーザー名、パスワード 21 22 // SQL実行用オブジェクトの作成 23 Statement stmt = con.createStatement(); 24 ){ 25 // SQL実行と結果格納 26 ResultSet rs = 27 stmt.executeQuery("select 県名, 人口 from REVENGE where 人口 = 812056"); 28 29 while(rs.next()) { 30 String name = rs.getString("県名"); 31 int population = rs.getInt("人口"); 32 33 System.out.println("県名 " + name + " : 人口 " + population); 34 } 35 //PreparedStatement pStmt = con.prepareStatement(sql); 36 //pStmt.setInt(1, userId); 37 //ResultSet rs = pStmt.executeQuery(); 38 39 // コミット 40 try { 41 con.commit(); 42 } 43 catch(SQLException ex) { 44 // コミットに失敗したら全作業をなかったことにする 45 con.rollback(); 46 } 47 } 48 catch(SQLException ex) { 49 ex.printStackTrace(); 50 } 51 } 52 else { 53 System.out.println("コマンドライン引数を指定してください"); 54 } 55 } 56}

sqlを使ったjavaプログラムを実行したいのですが、コマンドプロンプトで
①javac Main.java
②java -cp .;jdbc10.jar Main
だと実行できるのですが、コマンドライン引数を指定して
②java -cp .;jdbc10.jar Main 12345
とすると実行できなくなってしまいます。

エラーの内容はjava.sql.SQLException: No suitable driver foundです。

解決方法があればお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/10/05 05:12

どういうコードになっているのでしょうか。 また「実行できなくなる」とはエラー等は出てるのでしょうか
dodox86

2021/10/05 05:15

その質問の記述内容では第三者に原因は分かりません。*.jarファイルは関係ないと思います。 コマンドライン引数の取り扱い方が間違っているのでは?「実行できない」と言う言葉も、「実行できない」とは一般的にプログラム自体が起動しない(≒実行不可能)なような意味を指します。 例外が起きて要望通り動作していないのか、例外は起きていないけど思ったように動いていないのか、それとも他の事象か。 ちゃんと説明しましょう。 [質問するときのヒント] https://teratail.com/help/question-tips
retantaro

2021/10/05 05:18

投稿した後に気付き、編集しました。ご指摘ありがとうございます。
m.ts10806

2021/10/05 05:21

コードはマークダウンにてご提示ください
m.ts10806

2021/10/05 05:22

ただ、半端な状態で提示されても再現確認はできませんし問題が見えてきません。原則全て提示してください
dodox86

2021/10/05 05:26

> ②java -cp .;jdbc10.jar Main > だと実行できるのですが、 引数が指定されていることでif (args.length!=0) {の節のコードが実行されて、例外が起きているだけ。 jarファイルの問題でも無いし、コマンドライン引数の指定の問題でもない。 本質は"java.sql.SQLException: No suitable driver found" です。
dodox86

2021/10/05 05:39

> jarファイルの問題でも無いし、 jarファイルに問題は無い、とは言えませんね。これは訂正させていただきます。動こうが動かなかろうが、少なくともCLASSPATHに正しいJDBCドライバーのJARファイルの指定は必要です。
retantaro

2021/10/05 05:44

そうですね、少し調べてみます。ありがとうございます。
m.ts10806

2021/10/18 06:51

自己解決するにしても「どう解決したか」書かないと誰にも伝わりません
guest

回答1

0

自己解決

ドライバーの名前がjdbc10.jarではなく、ojdbc10.jarでした。
単純な勘違いをしていました。ご迷惑をお掛けして申し訳ありません。
ありがとうございました。

投稿2021/10/11 02:37

編集2021/10/18 07:02
retantaro

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問