


Bagaimana untuk mengkonfigurasi mybatis dan pengurusan transaksi dalam springboot
1. Konfigurasi but spring dan mybatis
1 Pertama sekali, semua kebergantungan yang diperlukan untuk but spring untuk mengkonfigurasi mybatis adalah seperti berikut:
<!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <!--以上内容放在dependencies标签外,如果你有已经有父标签,那将以上部分粘贴到父项目中--> <!-- spring boot 项目启动必须引入的web依赖,以下内容放在dependency即可 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.5.1.RELEASE</version> </dependency> <!-- Spring Boot Mybatis 依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <!-- oracle的数据库驱动包 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4.0-atlassian-hosted</version> </dependency>
Di sini kita bercakap tentang pakej pemacu pangkalan data di atas, oracle dan Mysql memperkenalkan kebergantungan yang berbeza, jangan lupakannya. Jika anda terlupa untuk memperkenalkannya, kelas pemandu yang tidak dijumpai pengecualian akan dilaporkan.
2. Kemudian, tambahkan kandungan berikut dalam application.properties
fail konfigurasi:
##数据库连接信息 spring.datasource.url=jdbc:oracle:thin:@//192.168.1.171:1521/orcl spring.datasource.username=znxd spring.datasource.password=znxd spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver ##指向mapper的xml文件位置 mybatis.mapper-locations=classpath:mapper/*Mapper.xml ##指向实体类的位置 mybatis.type-aliases-package=cloud.user.models.*
Sebenarnya terdapat banyak kandungan bermula dengan spring.datasource
secara khusus, selepas memasukkannya ke dalam application.properties
fail Lihat sahaja apa yang anda boleh klik.
Secara lalai, springboot akan mengumpulkan maklumat bermula dengan spring.datasource, mengkonfigurasi objek DataSource dan kemudian mengkonfigurasi sqlSessionFactory dan konfigurasi sambungan pangkalan data lain yang berkaitan, jadi ramai orang lain akan bercakap tentang konfigurasi apa kelas untuk menulis, yang saya rasa tidak perlu. (Mengkonfigurasi druid memerlukan @Bean)
Sudah tentu, jika ia sangat terperinci dan konfigurasi yang berkaitan tidak boleh diklik melalui spring.datasource
dalam fail application.properties, anda mungkin perlu mengkonfigurasi kelaskan sesuatu.
mybatis.mapper-locations
Lokasi yang ditunjuk bermula dari src/main/resource, dan classpath perlu ditambah di hadapan ia menunjuk ke lokasi di mana fail mapper.xml anda diletakkan.
3. Mybatis menjana kelas entiti, pemeta, dsb. melalui kejuruteraan terbalik jadual pangkalan data Pertama, saya menyiarkan struktur penempatan khusus seperti berikut:
Penjelasan untuk gambar di atas adalah seperti berikut:
Kelas permulaan mesti diletakkan pada kedudukan tertinggi berbanding kelas lain dalam projek seperti yang dinyatakan dalam artikel sebelum ini. but spring tidak mempunyai konfigurasi projek musim bunga tradisional Dalam gambar di atas, perkhidmatan diletakkan lebih tinggi daripada kelas pelaksanaannya Jika terdapat dua perkhidmatan A dan B, dan terdapat Ampl dan Bimpl dalam kelas pelaksanaan, jika Ampl memanggil B, ia mungkin berada dalam. Apabila memulakan bekas, "medan bernama ‘B’ not found" muncul. Ralat ini muncul, menunjukkan bahawa urutan pengimbasan bekas adalah salah. Penyelesaian terbaik untuk situasi ini ialah meletakkan perkhidmatan di tempat yang tinggi seperti yang saya lakukan Apabila bekas bermula, ia mengimbas perkhidmatan terlebih dahulu, dan kemudian mengimbas impl, supaya ia pasti dapat ditemui apabila. melaksanakan perkhidmatan pengimbasan kelas, ralat ini tidak akan berlaku. Penyelesaian lain ialah menambah anotasi tambahan semasa memperkenalkan perkhidmatan: @Lazy Ringkasnya, jika terdapat hubungan antara memanggil dan dipanggil, anda mesti ingat bahawa penerima mesti diimbas terlebih dahulu ke dalam but spring bekas terbina dalam , iaitu, kedudukan pakej penerima hendaklah diletakkan lebih tinggi (jawatan mestilah sekurang-kurangnya sama). 4. Anotasi @Service perlu ditambahkan pada kelas pelaksanaan perkhidmatan. Ini mungkin tidak perlu, saya belum mencubanya. 5 Selain keperluan ini, spring boot+mybatis juga perlu menambah anotasi @MapperScan ke kelas permulaan, seperti berikut: Berikut ialah nilai ruang nama. dalam mapper.xml saya **Ini melengkapkan konfigurasi mybatis. adalah untuk menambah dua anotasi berdasarkan mybatis 1 dan @Autowired
@Lazy //这样就会延迟加载,上图不需要,这里只是解释这注解
LogsUserActiveMapper logsUserActiveMapper;
package cloud.kafka;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement //如果mybatis中service实现类中加入事务注解,需要此处添加该注解
@MapperScan("cloud.kafka.mapper") //扫描的是mapper.xml中namespace指向值的包位置
public class KafkaLogApplication {
public static void main(String[] args){
SpringApplication.run(KafkaLogApplication.class, args);
}
}
<mapper namespace="cloud.kafka.mapper.LogsUserActiveMapper" >
2. Konfigurasi transaksi
@EnableTransactionManagement
Dua, ia datang daripada pakej berikut: @Transactional
spring-tx.jar
Pakej ini sebenarnya telah diperkenalkan secara automatik apabila mybatis dikonfigurasikan untuk memperkenalkan kebergantungan . , iaitu yang di bawah: <!-- Spring Boot Mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
Anotasi, jika anda menambahkannya pada kelas, maka semua kaedah kelas akan diuruskan oleh transaksi Jika anda menambahkannya pada kaedah, maka hanya kaedah ini mematuhi transaksi tertentu. Sudah tentu, kami biasanya menambahkannya pada kaedah. Kerana hanya menambah, memadam dan mengubah suai akan memerlukan transaksi. @Transactional
@Override @Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT,timeout=36000,rollbackFor=Exception.class) public Integer add(Cbf_jtcy t) { return cbf_jtcyMapper.insert(t); }
, seperti berikut: @EnableTransactionManagement
@SpringBootApplication @EnableTransactionManagement @MapperScan("microservice.qssj.mapper")//必须加这个,不加报错,如果不加,也可以在每个mapper上添加@Mapper注释,并且这里还要多填一个注释,那个我忘了,我一直用这个注解 public class QssjServiceApplication { public static void main(String[] args) { SpringApplication.run(QssjServiceApplication.class, args); } }
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi mybatis dan pengurusan transaksi dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



iBatis vs. MyBatis: Mana yang patut anda pilih? Pengenalan: Dengan perkembangan pesat bahasa Java, banyak rangka kerja kegigihan telah muncul. iBatis dan MyBatis ialah dua rangka kerja kegigihan yang popular, kedua-duanya menyediakan penyelesaian capaian data yang mudah dan cekap. Artikel ini akan memperkenalkan ciri dan kelebihan iBatis dan MyBatis, dan memberikan beberapa contoh kod khusus untuk membantu anda memilih rangka kerja yang sesuai. Pengenalan kepada iBatis: iBatis ialah rangka kerja kegigihan sumber terbuka

Tafsiran teg SQL dinamik MyBatis: Penjelasan terperinci tentang penggunaan teg Set MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik Ia menyediakan banyak teg SQL dinamik dan boleh membina pernyataan operasi pangkalan data secara fleksibel. Antaranya, tag Set ialah tag yang digunakan untuk menjana klausa SET dalam kenyataan UPDATE, yang sangat biasa digunakan dalam operasi kemas kini. Artikel ini akan menerangkan secara terperinci penggunaan teg Set dalam MyBatis dan menunjukkan kefungsiannya melalui contoh kod tertentu. Apakah itu Set tag Set tag digunakan dalam MyBati

Beberapa cara untuk melaksanakan pernyataan pemadaman kelompok dalam MyBatis memerlukan contoh kod khusus Dalam beberapa tahun kebelakangan ini, disebabkan oleh peningkatan jumlah data, operasi kelompok telah menjadi bahagian penting dalam operasi pangkalan data. Dalam pembangunan sebenar, kita selalunya perlu memadamkan rekod dalam pangkalan data secara berkelompok. Artikel ini akan menumpukan pada beberapa cara untuk melaksanakan pernyataan padam kelompok dalam MyBatis dan memberikan contoh kod yang sepadan. Gunakan teg foreach untuk melaksanakan pemadaman kelompok MyBatis menyediakan teg foreach, yang boleh melintasi set dengan mudah.

JPA dan MyBatis: Analisis Perbandingan Fungsi dan Prestasi Pengenalan: Dalam pembangunan Java, rangka kerja kegigihan memainkan peranan yang sangat penting. Rangka kerja kegigihan biasa termasuk JPA (JavaPersistenceAPI) dan MyBatis. Artikel ini akan menjalankan analisis perbandingan fungsi dan prestasi kedua-dua rangka kerja dan menyediakan contoh kod khusus. 1. Perbandingan fungsi: JPA: JPA ialah sebahagian daripada JavaEE dan menyediakan penyelesaian kegigihan data berorientasikan objek. Ia diluluskan anotasi atau X

Penjelasan terperinci tentang cara menggunakan pernyataan pemadaman kumpulan MyBatis memerlukan contoh kod khusus Pengenalan: MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyediakan fungsi operasi SQL yang kaya. Dalam pembangunan projek sebenar, kami sering menghadapi situasi di mana data perlu dipadamkan dalam kelompok. Artikel ini akan memperkenalkan secara terperinci cara menggunakan pernyataan pemadaman kumpulan MyBatis, dan melampirkan contoh kod tertentu. Senario penggunaan: Apabila memadamkan sejumlah besar data dalam pangkalan data, adalah tidak cekap untuk melaksanakan kenyataan padam satu demi satu. Pada ketika ini, anda boleh menggunakan fungsi pemadaman kelompok MyBatis

Analisis mekanisme caching MyBatis: Perbezaan dan aplikasi cache peringkat pertama dan cache peringkat kedua Dalam rangka kerja MyBatis, caching ialah ciri yang sangat penting yang boleh meningkatkan prestasi operasi pangkalan data dengan berkesan. Antaranya, cache tahap pertama dan cache tahap kedua adalah dua mekanisme caching yang biasa digunakan dalam MyBatis. Artikel ini akan menganalisis perbezaan dan aplikasi cache peringkat pertama dan cache peringkat kedua secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Cache Tahap 1 Cache tahap 1 juga dipanggil cache setempat Ia didayakan secara lalai dan tidak boleh dimatikan. Cache tahap pertama ialah SqlSes

MyBatisGenerator ialah alat penjanaan kod yang disediakan secara rasmi oleh MyBatis, yang boleh membantu pembangun menjana JavaBeans, antara muka Mapper dan fail pemetaan XML dengan pantas yang mematuhi struktur jadual pangkalan data. Dalam proses menggunakan MyBatisGenerator untuk penjanaan kod, penetapan parameter konfigurasi adalah penting. Artikel ini akan bermula dari perspektif parameter konfigurasi dan meneroka secara mendalam fungsi MyBatisGenerator.

Penjelasan terperinci tentang konfigurasi pertanyaan satu-ke-banyak MyBatis: Untuk menyelesaikan masalah pertanyaan biasa yang berkaitan, contoh kod khusus diperlukan Dalam kerja pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu menanyakan objek entiti utama dan objek entiti hamba berbilang yang berkaitan. . Dalam MyBatis, pertanyaan satu-ke-banyak ialah pertanyaan perkaitan pangkalan data biasa Dengan konfigurasi yang betul, pertanyaan, paparan dan pengendalian objek yang berkaitan boleh direalisasikan dengan mudah. Artikel ini akan memperkenalkan kaedah konfigurasi pertanyaan satu-ke-banyak dalam MyBatis, dan cara menyelesaikan beberapa masalah pertanyaan biasa yang berkaitan
