Pernyataan SQL Bahasa Basis Data Bahasa kami yang umum digunakan perlu dikompilasi terlebih dahulu dan kemudian dieksekusi saat dieksekusi. Prosedur tersimpan adalah satu set pernyataan SQL untuk menyelesaikan fungsi spesifik. Setelah kompilasi, disimpan dalam database. Pengguna menelepon dan menjalankannya dengan menentukan nama prosedur tersimpan dan memberikan parameter (jika prosedur tersimpan memiliki parameter).
Prosedur tersimpan adalah fungsi yang dapat diprogram yang dibuat dan disimpan dalam database. Ini dapat terdiri dari pernyataan SQL dan beberapa struktur kontrol khusus. Prosedur tersimpan sangat berguna ketika Anda ingin menjalankan fungsi yang sama pada aplikasi atau platform yang berbeda, atau merangkum fungsi tertentu. Prosedur tersimpan dalam database dapat dianggap sebagai simulasi metode yang berorientasi objek dalam pemrograman. Ini memungkinkan kontrol atas bagaimana data diakses.
1. Prosedur tersimpan meningkatkan fungsionalitas dan fleksibilitas bahasa SQL. Prosedur tersimpan dapat ditulis dalam pernyataan kontrol aliran, yang memiliki fleksibilitas yang kuat dan dapat menyelesaikan penilaian yang kompleks dan operasi yang lebih kompleks.
2. Prosedur tersimpan memungkinkan komponen standar diprogram. Setelah prosedur tersimpan dibuat, itu dapat dipanggil beberapa kali dalam program tanpa harus menulis ulang pernyataan SQL dari prosedur tersimpan. Selain itu, profesional basis data dapat memodifikasi prosedur tersimpan kapan saja tanpa dampak pada kode sumber aplikasi.
3. Prosedur tersimpan dapat mencapai kecepatan eksekusi yang lebih cepat. Jika suatu operasi berisi sejumlah besar kode transaksi-SQL atau dieksekusi masing-masing beberapa kali, maka prosedur yang disimpan jauh lebih cepat daripada pemrosesan batch. Karena prosedur tersimpan dikompilasi. Ketika prosedur tersimpan pertama kali dijalankan, pengoptimal menganalisis dan mengoptimalkannya dan memberikan rencana eksekusi yang pada akhirnya disimpan dalam tabel sistem. Pernyataan transaksi pemrosesan Batch harus dikompilasi dan dioptimalkan setiap kali mereka berjalan, yang relatif lambat.
4. Prosedur yang tersimpan dapat mengurangi lalu lintas jaringan dengan over-the-counter. Untuk operasi (seperti kueri, modifikasi) dari objek basis data yang sama, jika pernyataan transaksi-SQL yang terlibat dalam operasi ini disimpan oleh proses organisasi, maka ketika prosedur tersimpan dipanggil pada komputer klien, hanya pernyataan panggilan yang ditransmisikan dalam jaringan, sehingga sangat meningkatkan lalu lintas jaringan dan mengurangi beban jaringan.
5. Prosedur tersimpan dapat sepenuhnya digunakan sebagai mekanisme keamanan. Administrator sistem dapat membatasi hak akses ke data yang sesuai dengan menjalankan izin ke prosedur tersimpan tertentu, menghindari akses ke data oleh pengguna yang tidak sah dan memastikan keamanan data.
1. Tidak mudah dipertahankan, setelah logika berubah, sulit untuk memodifikasinya
2. Jika orang yang menulis prosedur tersimpan ini pergi, itu mungkin merupakan bencana bagi orang yang mengambil alih kodenya, karena orang lain masih harus memahami logika program Anda dan logika penyimpanan Anda. Tidak kondusif untuk ekspansi.
3. Kerugian terbesar! Meskipun prosedur yang tersimpan dapat mengurangi jumlah kode dan meningkatkan efisiensi pengembangan. Tapi satu hal yang sangat fatal, itu terlalu memakan kinerja.
Berikut ini adalah kode untuk memperkenalkan prosedur tersimpan MySQL di mybatis;
## 1. Ada siswa Tabel Siswa (ID, Nama, Usia, Uang) ## 2. Buat prosedur tersimpan untuk meminta informasi tabel siswa: Pembatas | Buat Prosedur ShowallStu () Mulai Pilih * Dari Pesanan Siswa dengan ID Desc Limit 6; Enddelimiter ## 2. Buat prosedur tersimpan untuk menghapus catatan (melalui ID siswa): `` pembatas | Buat Prosedur DelbyID (D int (11)) Mulai hapus dari siswa di mana id = d; Enddelimiter ## 3. Buat proyek di maven: (dihilangkan) //pox.xml konfigurasi: <proyek xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <podelversion> 4.0.0 </modelversion> <groupis> com.metar </groupon> 4.0.0 </modelversion> <groupis> com.metar </groupon> 4.0.0 </modelversion> <groupis> com.metar </groupon> <packaging> war </packaging> <version> 1.0 </version> <name> mybatis-mysql maven Webapp </name> <rerl> http://maven.apache.org </RURL> </ART/ARTIF> </Version> </Versi </GroupAd> <ArtiFacTID> </Art/Versial> </Versies> </Versies> </Versies> </Artifact> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version> 3.4.6 </version> </dependency> <dependency> <groupId> mysql </proupId> <ArtifactId> mysql-connector-java </t Artifactid> <version> 6.0.6 </version> </Dependency> <sgroupid> <Roupid> CH.QOS.LOGBack </Version> </Dependency> <sgroupid> <Roupid> CH.QOS.LOGBACK </GroupDID> <TROPACID> <TROPAD> <version>1.2.3</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <testSourceDirectory>src/test/java</testSourceDirectory> <sourceDirectory>src/main/java</sourceDirectory> <!-- Handling the resource configuration File tidak dapat dimuat-> <seruk sumber daya> <serayani> <Recrectory> SRC/Main/Java </directory> <certed> <certed> **/*. xml </cert> <certed> **/*. Properti </include> </include> </resource> <penerota> <cirectory> SRC/Main/Main/Resources </included> </Resource> <pource> <recrectory> SRC/Main/Main/Resources </include> </Resource> <pource> <rectory> src/Main/Main/Resources </cleittory> </sumber daya <cource> <cource> <recror> <sertakan> **/*. Properties </include> </resource> </build> </boject> ## 4. Tautan Konfigurasi Entri Database (Dihilangkan), Konfigurasi: mybatis-config.xml: <? Xml Version = "1.0" encoding = "UTF-8"?> <! Konfigurasi Doctype Publik "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <Configuration> <!-Ini adalah portal konfigurasi untuk database sumber daya-> <Properties> </"DB.Poperties" <Typealis> <!-Mengkonfigurasi Alias Kelas Model-> <!-<Typealias type = "com.fz.entity.student" alias = "st"/>-> <!-Konfigurasikan semua alias di bawah paket yang ditentukan // Kelas kecil ALAAS di bawah paket com.fz.entity book.java. </yypealiases> <lingkungan default = "pengembangan"> <lingkungan id = "pengembangan"> <transactionManager type = "jdbc"/> <datasource type = "pooled"> <name properti = "driver" value = "$ {db.driver}"/> <nama properti = "url" value = "$ {db.url}"/"name =" USOMER "NAME" value = "$ {db.url}"/" value="${db.user}"/> <property name="password" value="${db.password}"/> </dataSource> </environment> </environments> <mappers> <!--<mapper/>--> <package name="com.fz.mapper"/> </mappers> </configuration>##5. Buat Objek Kelas Entitas: // Paket: com/fz/entitas/siswa @data Public Class Student {private int id; nama string pribadi; usia int pribadi; uang ganda pribadi; } ## 6. Buat Kelas Antarmuka StudentMapper dan Konfigurasi StudentMapper.xml; // StudentMapper Interface StudentMapper {// Stored Procedure Query 6 Records; Daftar Publik <Sahasiswa> query (); // Prosedur tersimpan menghapus catatan (oleh id) public int delbyid (int id); } //Studentmapper.xml Configuration```` <? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/dtd/dtd/dtd/dtd/dtd/dtd/dtd/dtd/dtd/papper/" namespace = "com.fz.mapper.studentmapper"> <pilih id = "query" resultType = "student"> {call showallstu ()} </ pilih> <delete id = "delbyid" parameterType = "int"> {call delbyId (#{id})} </delete> </mapper> Kelas Tes: // Test/Java/Com/Demo01 Paket COM; impor com.fz.entity.student; impor com.fz.mapper.studentmapper; impor org.apache.ibatis.io.Resources; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactoryBuilder; impor org.junit.after; Impor org.junit. Before; impor org.junit.test; impor java.io.ioException; impor java.io.inputstream; impor java.util.list; kelas publik demo01 {sqlsessionFactory sf yang dilindungi; SQLSession SS yang dilindungi; @Test public void test () {studentmapper sdd = this.ss.getmapper (studermapper.class); Daftar <Sahasiswa> ATD = SDD.Query (); untuk (SDSTENT SD: ATD) {System.out.println (SD); } sdd.delbyid (18); } @Before public void init () {inputStream adalah = null; coba {is = resources.getResourceAsstream ("mybatis-config.xml"); this.sf = SQLSessionFactoryBuilder baru (). Build (IS); this.ss = this.sf.opensession (); } catch (ioException e) {e.printstacktrace (); }} @After public void close () {this.ss.commit (); this.ss.close (); }}Mengisi kembali:
Mari kita lihat sintaks prosedur tersimpan
1 Buat prosedur tersimpan
Buat Prosedur SP_NAME () Mulai ......... Akhir
2 Memanggil Prosedur Tersimpan
call sp_name()
Catatan: Nama prosedur tersimpan harus diikuti oleh tanda kurung, bahkan jika prosedur tersimpan tidak memiliki parameter yang dilewati.
3 Hapus prosedur tersimpan
drop procedure sp_name//
Catatan: Anda tidak dapat menghapus prosedur tersimpan lain dalam satu prosedur tersimpan, Anda hanya dapat memanggil prosedur tersimpan lainnya.
4 Perintah Umum Lainnya
show procedure status
Menampilkan informasi dasar dari semua prosedur tersimpan yang disimpan dalam database, termasuk database yang menjadi miliknya, nama prosedur tersimpan, waktu penciptaan, dll.
show create procedure sp_name
Menampilkan informasi terperinci tentang prosedur tersimpan mysql
Meringkaskan
Di atas adalah metode menggunakan prosedur tersimpan MySQL di MyBatis yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!