序文
ストアドプロシージャはデータベースに保存され、最初のコンパイル後に再度呼び出され、再度コンパイルする必要はありません。ユーザーは、ストアドプロシージャの名前を指定し、パラメーターを提供することで実行します(ストアドプロシージャにパラメーターがある場合)。
JavaはJDBC接続と環境の日食を必要とするMySQLストアドプロシージャに電話します
まず、MySQLのデータベースのストアドプロシージャを確認し、次にコード呼び出しを書きます
mysql> show手順ステータス;+------+------------+----------+----------------+---------------------+----------------------------------------------+----------------------------------+---------------------+| db |名前|タイプ| DEFINER |修正|作成| security_type |コメント| character_set_client | collation_connection | Database Collation |+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+|本| FindAllbook |手順| root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | DEFINER | | gbk | gbk_chinese_ci | UTF8_GENERAL_CI ||本| pro_test |手順| root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | DEFINER | | gbk | gbk_chinese_ci | UTF8_GENERAL_CI ||本| pro_user |手順| root@localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | DEFINER | | gbk | gbk_chinese_ci | UTF8_GENERAL_CI |+------+-------------+----------+---------------+--------------------+--------------------+------------------------------------------------------------------------------+rows in Set(0.01 sec)MySQL>ショートレジション findAllBook;+-------------+------------------------+---------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+|手順| SQL_MODE |手順を作成| character_set_client | collation_connection |データベースの照合|+------------+----------------------+---------------------------------------------------------------------------+-------------------+--------------------+------------------------------+| FindAllbook | NO_ENGINE_SUBSTITION | definer = `root`@` localhost`プロシージャ `findallbook`()begin select * from tb_books; end | gbk | gbk_chinese_ci | UTF8_GENERAL_CI |+------------+------------------------+---------------------------------------------------------------------------------------------------------------+---------------------+-------------------+行の列(0.00秒)
1。プロジェクトディレクトリ構造
2。book.java
パッケージcom.scd.book; public class book {private string name; //ブックネームプライベートダブル価格。 //プライベートint bookcount; //数量プライベート文字列著者。 //著者public string getname(){//system.out.println(name);返品名; } public void setName(string name){this.name = name; } public double getPrice(){return price; } public void setPrice(2倍の価格){this.price = price; } public int getBookCount(){return bookcount; } public void setbookCount(int bookcount){this.bookcount = bookcount; } public string getauthor(){return athor; } public void setauthor(string著者){//system.out.println(author); this.author =著者; }}3。findbook.java
パッケージcom.scd.book; import java.sql.callablestatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; Import java.sql.sqlexception; import java.util.arraylist; import java.util.util.util.util.util.util.util.util.util.utabaist;接続* @return接続オブジェクト*/ public connection getConnection(){connection conn = null; //データベース接続try {class.forname( "com.mysql.jdbc.driver"); //データベースドライバーをロードしてドライバーマネージャーに登録/*データベースリンクアドレス*/string url = "jdbc:mysql:// localhost:3306/book?useunicode = true&charatereCoding = utf-8";文字列username = "root";文字列パスワード= "123456"; /*接続リンクの作成} catch(classNotFoundException e){e.printstacktrace(); } catch(sqlexception e){// todo auto-enerated catch block e.printstacktrace(); } return conn; //データベース接続を返します}/***ストアドプロシージャを介したクエリデータ* @returnリスト<book>*/public list <book> findall(){list <book> list = new arraylist <book>(); // instantiate listオブジェクト接続conn = getConnection(); //データベース接続の作成try {//ストアドプロシージャの呼び出しcallablestatement cs = conn.preparecall( "{call findallbook()}");結果rs = cs.executequery(); //クエリ操作を実行し、結果を取得しますwhile(rs.next()){book book = new book(); // book object book.setname(rs.getString( "name"))をインスタンス化します。 //名前属性book.setprice(rs.getDouble( "fite"))を割り当てます。 //価格属性book.setbookCount(rs.getint( "bookcount"))を割り当てる; // bookcount属性book.setauthor(rs.getString( "Author"))を割り当てる; //著者属性list.add(book)を割り当てます。 }} catch(例外e){e.printstacktrace(); }返品リスト。 // return list}/** *メイン関数呼び出しストアドプロシージャ(テスト) * @param args */public static void main(string [] args){findbook fb = new findbook(); //system.out.println(fb.findall()); for(book book:fb.findall()){system.out.print(book.getname() + " - " + book.getprice() + " - "); system.out.print(book.getbookcount() + " - " + book.getauthor()); System.out.println(); }}}4. [> [> java]アプリケーション、コンソール出力として右クリックします
5。ストアドプロシージャでSQLステートメントを実行します
mysql> select * from tb_books;+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng |+----------------+-------+---------+----------+rows in set(0.00秒)
要約します
上記は、JavaがMySQLストアドプロシージャを呼び出すコンテンツ全体です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。