• 締切済み

MySQLのストアドプロシージャをJavaから使いたい

MySQLのバージョン5から搭載されたストアドプロシージャをJavaから使いたいと考えています。 また、MySQLのストアドプロシージャの文法自体も知りたいです。 しかしまだWeb上の情報が少なく、困っています。 このような情報の載っているサイトをご存知の方がいたら教えていただきたいです。 (できれば日本語のサイトだとさらにありがたいです) もしくはサンプルを直接記述していただけないでしょうか。 環境は ・WindowsXP ・Java5 ・MySQL5 です。よろしくお願いします。 ちなみに公式サイトのページは知っています。 http://dev.mysql.com/doc/refman/5.0/en/stored-procedures.html ので、それ以外でお願いします。

  • MySQL
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

ストアド・プロシジャの使用例の記事がありますので、紹介しておきます。

参考URL:
http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040305/1/
aopon1981
質問者

お礼

ありがとうございます。参考になりました。 Javaからの使用例があるともっと嬉しいです。

aopon1981
質問者

補足

その後 Java から使用する方法も見つけました。どうもです。

関連するQ&A

  • MySQLのストアドプロシージャについて

    MySQL5.6のストアドプロシージャが返すSELECT結果のフェッチ方法について教えてください。 delimiter $ create procedure sample_proc() begin select * from TEST_TBL; end$ の様なストアドプロシージャがあり、これを他のストアドプロシージャから呼び出して、 ループしながらフェッチしたいのですが、どうすればよいでしょうか。

  • ストアドプロシージャ

    こんにちは。 Javaにて、ストアドプロシージャを実装しなくてはならない要件が急遽発生しましたが、私にはそれに関連する知識が皆無で、戸惑っています。 参考になるURLなど、なんでもよいので、ご存知でしたらご教授ください。 Javaは、Java2、データベースは、DB2です。

  • PostgreSQLでストアドプロシージャについて

    皆さんのお陰でストアドファンクションを作成する事ができました。 ここで1つ、疑問が・・・ ネットでPostgreSQLの「CREATE PROCEDURE」を検索しても私が望んでいる情報を得る事ができませんでした。 申し訳ありませんがここで質問があります。 PostgreSQLで「CREATE PROCEDURE」はないんでしょうか。 PostgreSQLではストアドプロシージャとストアドファンクションは一緒なのでしょうか。 MySQLやSQL Serverではストアドプロシージャとストアドファンクションは別だった気がしますが・・・ ※違っていたらすみません。 どなたか私の疑問を解決していただけませんでしょうか。 宜しくお願いします。

  • ストアドプロシージャについて

    ストアドプロシージャで、Accessのクエリーを実行させテーブルの中の指定したIDのデータを削除させるという流れなのですが・・ 以下のソースで実行はできるのですが、削除ができていないので原因がわかりません。アドバイスお願いします。 package CallableStatement; import java.sql.*; import java.io.*; public class cCallableStatement { public static void main(String[] args) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection db=DriverManager.getConnection("jdbc:odbc:sample","",""); CallableStatement cllDelete; int ID = 3;        // 削除 cllDelete = db.prepareCall("{call DELETE(?)}"); cllDelete.setInt(1,ID); cllDelete.executeUpdate(); } } 環境はwin2000 pro forte for java 4.0 jdk : 1.4 データベース: Access2000

  • MySQL Connector C++について

    ttp://dev.mysql.com/doc/refman/5.1/en/connector-cpp.html MySQL Connector/C++についてなんですが、 Connector/Cでいう mysql_options(&mysql, MYSQL_SET_CHARACTER_NAME, "sjis") に相当するものは無いでしょうか? sjisで文字を扱いたいんですが…

    • ベストアンサー
    • MySQL
  • ストアドファンクション⇒プロシージャ呼出し失敗する

    参考の通りに、ストアドプロシージャ作成SQL文を発行し、 コマンドライン上からは、以下の通りの結果1となり、 レコードがinsertされます。 <結果1> mysql> call logger('ほげ', 'ホゲ'); Query OK, 1 row affected (0.01 sec) mysql> select * from PROCEDURE_LOG; +--------+--------+---------------------+ | NAME | QUERY | EXECUTE_DATE | +--------+--------+---------------------+ | ほげ | ホゲ | 2014-03-26 10:41:26 | +--------+--------+---------------------+ 1 row in set (0.00 sec) ですが、testというストアドファンクションから呼び出してみましたが、 以下の結果2の通り、失敗します。 <結果2> mysql> select test(); ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger <test> BEGIN CALL logger('test','1'); RETURN CONCAT('END'); END 現在動作している環境では、どこでエラーが発生したかがわからず、 ロガーの処理をなんとしても実装したいのですが、 いろいろ試してみても、解決できませんでした。 ご教示のほど、よろしくお願いします。 <参考> http://treeapps.hatenablog.com/entry/20120106/p1 <ストアドプロシージャ作成SQL文(logger)> SET NAMES UTF8; delimiter // -- ログ出力 DROP PROCEDURE IF EXISTS logger// CREATE PROCEDURE logger( IN PROCEDURE_NAME TEXT, IN SQL_TEXT TEXT ) BEGIN DECLARE CNT INT; CREATE TABLE IF NOT EXISTS PROCEDURE_LOG ( NAME VARCHAR(64), QUERY TEXT, EXECUTE_DATE TIMESTAMP, KEY IDX1 (NAME, QUERY(64), EXECUTE_DATE) ) ENGINE=MYISAM DEFAULT CHARSET=UTF8; -- 古いログを削除 SELECT COUNT(*) INTO CNT FROM PROCEDURE_LOG; IF CNT >= 1000 THEN DELETE FROM PROCEDURE_LOG LIMIT 1; END IF; -- テーブルにログを記録 SET @sql = CONCAT('INSERT INTO PROCEDURE_LOG VALUES (', QUOTE(PROCEDURE_NAME), ',', QUOTE(SQL_TEXT), ', null)'); PREPARE stmt FROM @sql; EXECUTE stmt; END // delimiter ;

    • ベストアンサー
    • MySQL
  • PostgreSQLでストアドプロシージャ

    みなさん、こんにちわ 現在、Microsoft SQLServer7.0を運用しておりますが、一部のDBをPostgreSQLに移行することを検討しております。 そのなかで、SQLServerにあるストアドプロシージャの機能、またはそれに代替する機能があるのかどうか、ご存知の方がありましたらお教えいただけませんか? とりあえずWindows版の入手からインストール、起動までは何とかできたのですが、あちらこちらのサイトを見ても、上記の事に関する情報がどうしても入手できませんでした。 よろしくお願い致します。

  • ロールバックできないステートメントについて

    こんばんは。 既存のテーブルのカラムを削除することになりまして、 以下の手順で変更をかけました。 環境:mysql_5.5 mysql>begin; mysql>alter table test_table drop column test_column; mysql>desc test_table; mysql>rollback; mysql>desc test_table; しかし、ロールバックをかけても元に戻らなかったのですが、 http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.htmlhttp://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html の記述にあるようにバージョン5.5でもalterでのロールバックは出来ないのでしょうか。 英語のサイトを見たのですが、ただしく訳せませんでした。 http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.htmlhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html 回避方法があったら、教えてください。

  • MySQL Version4 のダウンロード先

    MySQLの「Version4」のダウンロード先を探しているのですが、 なかなか見つけることができません。 英語サイトを巡回して、それっぽい箇所 http://dev.mysql.com/doc/refman/4.1/en/news-4-1-x.html の 「Version 4.1 of the MySQL server includes many enhancements and new features. Binaries for this version are available for download at http://dev.mysql.com/downloads/mysql-4.1.html. 」 のリンクを踏んでみたのですが、ここでも最新版「Version5.1.44」しか置いていませんでした。。 Version4のダウンロード先が分かる方おられましたら、ご教示頂けませんでしょうか。

    • ベストアンサー
    • MySQL
  • mysqlのconfについて

    バイナリログの削除についていろいろな サイトを回って確認していたのですが expire_logs_days と expire-logs-days の両方(ハイフンとアンダースコア)が各サイトでバラバラでした。 公式のmysqlのページでは http://dev.mysql.com/doc/refman/5.1-olh/ja/purge-binary-logs.html アンダースコアのようです。 どちらも試してみたのですが どちらも有効?のようです。 何か記述のルールみたいのがあるのでしょうか。 一応、公式に合わせてアンダースコアで設定しようと思いますが このままだとしっくりこないと思い質問させて頂きました。 mysqlに詳しい方、回答よろしくお願いします。

    • ベストアンサー
    • MySQL