Kata pengantar
Prosedur tersimpan disimpan dalam database dan dipanggil lagi setelah kompilasi pertama, dan tidak perlu dikompilasi lagi. Pengguna menjalankannya dengan menentukan nama prosedur tersimpan dan memberikan parameter (jika prosedur tersimpan memiliki parameter).
Java Memanggil Prosedur Tersimpan MySQL, yang membutuhkan koneksi JDBC dan Eclipse Lingkungan
Pertama, periksa prosedur tersimpan database di MySQL, dan kemudian tulis panggilan kode
mysql> show procedure status;+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+| Db | Nama | Ketik | Definer | Dimodifikasi | Dibuat | Security_type | Komentar | karakter_set_client | collation_connection | Kolasi Database |+------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+| buku | FindAllbook | Prosedur | root@localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | Definer | | GBK | gbk_chinese_ci | UTF8_General_ci || buku | Pro_test | Prosedur | root@localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | Definer | | GBK | gbk_chinese_ci | UTF8_General_ci || buku | Pro_user | Prosedur | 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> show create procedure FindAllBook;+-------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------+----------------------+--------------------+| Prosedur | sql_mode | Buat Prosedur | karakter_set_client | collation_connection | Kolasi Database |+-------------+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| FindAllbook | No_engine_substitusi | Buat Definer = `root`@` localhost` Prosedur `findAllbook` () Mulai pilih * dari tb_books; end | GBK | gbk_chinese_ci | utf8_general_ci |+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+Baris (0,00 SEC))
1. Struktur Direktori Proyek
2. Book.java
paket com.scd.book; buku kelas publik {private string name; // Nama buku Private Double Price; // Harga Private Int Bookcount; // kuantitas penulis string pribadi; // penulis public string getName () {//system.out.println(name); nama pengembalian; } public void setName (name string) {this.name = name; } public double getPrice () {harga kembali; } public void setPrice (harga ganda) {this.price = harga; } public int getBookCount () {return bookcount; } public void setBookCount (int bookcount) {this.bookcount = bookcount; } public String getAuthor () {return author; } public void setauthor (string worhor) {//system.out.println(author); this.author = penulis; }}3. Findbook.java
Paket com.scd.book; impor java.sql.callablestatement; impor java.sql.connection; impor java.sql.driverManager; impor java.sql.resultset; impor* publikasi; Impor Java. Koneksi* @Return Objek koneksi*/ koneksi publik getConnection () {connection conn = null; // koneksi database coba {class.forname ("com.mysql.jdbc.driver"); // Muat driver database dan daftarkan ke Driver Manager/*Alamat tautan basis data*/string url = "jdbc: mysql: // localhost: 3306/book? UseUnicode = true & characterencoding = UTF-8"; String username = "root"; String password = "123456"; /*Buat tautan koneksi*/ conn = driverManager.getConnection (url, nama pengguna, kata sandi); } catch (ClassNotFoundException e) {E.PrintStackTrace (); } catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); } return conn; // Kembalikan Koneksi Basis Data}/*** Data kueri melalui prosedur tersimpan* @Return List <Book>*/Daftar Publik <Book> findAll () {List <Book> Daftar = ArrayList baru <Book> (); // Daftar Daftar Objek Koneksi Conn = getConnection (); // Buat Koneksi Basis Data Coba {// Memanggil Prosedur Tersimpan CallAblestatement cs = conn.prepareCall ("{call findAllBook ()}"); Hasil rs = cs.executeQuery (); // Jalankan operasi kueri dan dapatkan hasil yang ditetapkan while (rs.next ()) {book book = buku baru (); // instantiate buku buku buku.setName (rs.getString ("name")); // Tetapkan name attribute book.setPrice (rs.getDouble ("harga")); // Tetapkan harga atribut book.setBookCount (rs.getint ("bookcount")); // Tetapkan bookcount attribute book.setauthor (rs.getString ("penulis")); // Tetapkan atribut penulis daftar.Add (buku); }} catch (Exception e) {e.printstacktrace (); } daftar pengembalian; // daftar pengembalian}/** * Panggilan fungsi utama Prosedur tersimpan (diuji) * @param args */public static void main (string [] args) {findbook fb = new findbook (); //System.out.println (fb.findall ()); untuk (buku buku: fb.findall ()) {System.out.print (book.getName () + "-" + book.getPrice () + "-"); System.out.print (book.getBookCount () + "-" + book.getAuthor ()); System.out.println (); }}}4. Klik kanan dijalankan sebagai-> aplikasi java, output konsol
5. Jalankan pernyataan SQL dalam prosedur tersimpan
mysql> pilih * dari tb_books;+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng |+------------------+-------+-----------+----------+Baris dalam Set (0,00 detik)
Meringkaskan
Di atas adalah seluruh konten Java yang memanggil prosedur tersimpan MySQL. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.