Ada artikel dalam catatan sebelumnya yang tanpa menggunakan Spring, itu secara langsung menghubungkan dan mengoperasikan database MongoDB dalam kode Java. Di sini kami akan merekamnya saat menggunakan musim semi, operasi sederhana MongoDB di Java.
Konfigurasi Paket Maven:
Karena melibatkan Spring dan SpringMVC, juga perlu untuk mengimpor paket terkait:
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/maven-v4_0_0.xsd "> <nodelversion> 4.0.0 </podelversion> <groupid> Spring_mongo </groupid> <Artifactid> Spring_Mongo </artifactid> <packaging> war </packaging> </version. WebApp </name> <rerl> http://maven.apache.org </rerl> <dependencies> <dependency> <groupid> org.springframework.data </groupid> <ArTifactid> Spring-Data-MongoDB </artifactid> <version> 1.8.0.release </version> </artifactid> <pendore> versi 1.8.0.release </Version> </artifactid> <TREPENDY> </Versi 1.8.0.release </Version> </ArtifactID> Versi 1.8.8.0.release </Version> Version </Versi 1.8.8.8.8 <GroupId> org.mongoDb </groupid> <ArTifactId> Mongo-java-driver </arttifactid> <version> 3.0.3 </version> </dependency> <dependency> <groupid> Commons-Logging </groupid> <Artifactid> Commons-logging </Arttifactid> </Groupid> <ArtifactId> Commons-logging </Arttifactid> </GroupId> <Tifactid> Commons-logging </Arttifactid> </Groupid> <TifactID> Commons-logging </Artifactid> </Groupid> <Tifactid> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.6.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId> org.springframework </groupid> <ArTifactId> Spring-Context </artifactid> <version> 4.1.7.release </version> </dependency> <dependency> <roupidid> org.spramorkework </roupid> <ArTifacTid> Spring-Context-Sorence </ArtiFacTID </groupry> <t ArtifactId> <artifactid> <artifactId> <cruptext-context-sortion </art/version..0 </Dependency> <build> <dlugin> <lugin> <ArTifactId> maven-compiler-plugin </t Artifactid> <version> 2.3.2 </version> <donfiguration> <source> 1.7 </source> <target> 1.7 </target> <coding> UTF-8 </encoding> <compilerargumen <tootclasspath> $ {java.home} /lib/rt.jar; $ {java.home} /lib/jce.jar </tootclasspath> </sompilerArguments> </fineName> </plugin </plugins> <fulname> spring_mongo </finalname> </plugins <finalname> spring_mongo </final- final> </plugins> <finorname> spring_mongo </fineName> </plugins </finalname> spring_mongo </final> final> </plugins> <ferfolname> spring_mongo </fineName> </plugins </finalname> spring_mongo </fineName> </plugins </finalname> spring_mongo </finals Konfigurasi Spring Basic:
Terutama, ini memungkinkan pemindaian anotasi, dll.:
<? Xml Version = "1.0" encoding = "utf-8"?> <beans xmlns: Task = "http://www.springframework.org/schema/task" xmlns = "http://www.springframework.org/schema/bema" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http:schema/context" xsi: schemalocation = "http:schema/context" xsi: schempalocation = "http:schema/context" xsi: schemalocation = "http:schaMa/context" xsi: shempemalocation = "http:schema" http://www.springframework.org/schema/beans/spring-weans-3.0.xsd http://www.springframework.org/schema/context http:/www.springframework.org/schema/context http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring--task-3.springfringpring.org/schema/taskas/spring-tkask-3.1.xssd " Paket dasar = "spring_mogo.dao.daoimp" /> <!-Impor file konfigurasi MongoDB-> <impor sumber daya = "spring-mongodb305.xml" /> <!-nyalakan anotasi-> <konteks: anotasi-konfigasi /> < /beans>
Spring Connects MongoDB dan membuat konfigurasi untuk pabrik terkait:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: p = "http://www.springframework.org/schema/p" xmlns: mongo = "http://www.springframework.org/schaMa/data/mongo" xsi: schemalocation = "httpaMa.data http://www.springframework.org/schema/beans/spring-weans-3.0.xsd http://www.springframework.org/schema/data/mongo http://wwww.springframework.org.org/mongo http://www.spramework.org/orgo/schema/wwww.sprameworker <!-Konfigurasi Musim Semi untuk Menghubungkan ke Database MongoDB-> <Mongo: Mongo-Client Host = "192.168.0.201" Port = "27017" Kredensial = "Tuzongxun: 123456@Mongotest" ID = "Mongo"> <Mongo: Client-Con-coong: Mongotest "ID =" Mongo "> <Mongo: Client-Con-con-con: Mongo: Mongo"> <Mongo: client-con-con-con = con-con: mongo/mongo "> <Mongo: client-con-con-conc = con-con: mongo/mongo"> <Mongo: client-con-clite-c-cook <mongo: db-factory id = "mongoDbfactory" dbname = "mongotest" mongo-ref = "mongo" /> <!-cukup gunakan ini untuk memanggil metode yang sesuai-> <bean id = "mongotemplate"> <konstruktor-arg = "Mongodbfactory" mong = "mong = mong =" Mongfactory "mong =" mongfacory "mong =" Mongfacory "mong =" mongfacory "mong =" mongfacory "mong =" mongfactory "mong
Kelas entitas yang sesuai dengan database:
Perlu dicatat bahwa antarmuka serial perlu diimplementasikan dan atribut UID diatur, jika tidak hasil pengembalian database tidak dapat dikonversi langsung ke atribut objek selama operasi:
paket spring_mongo.models; impor java.io.serializable; Kelas Publik Usermodel mengimplementasikan serial {private static final long serialversionuid = 1l; nama pengguna string pribadi; kata sandi string pribadi; USERMODEL PUBLIK (Nama Pengguna String, Kata Sandi String) {Super (); this.username = nama pengguna; this.password = kata sandi; } string publik getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; }} Dapatkan MongoTempleT yang mengoperasikan MongoDB sesuai dengan konfigurasi pegas, dan Anda perlu mengimplementasikan antarmuka ApplicationContextAware:
paket spring_mogo.dao.daoimp; impor org.springframework.beans.beansException; impor org.springframework.context.applicationContext; impor org.springframework.context.applicationContextAware; impor org.springframework.data.mongodb.core.mongotemplate; Kelas Abstrak Publik AbstractBasemongoTempleTen mengimplementasikan ApplicationContextAware {MongoTemplate MongoTemplate yang dilindungi; / ** * @Description Set MongoTemplate sesuai dengan file konfigurasi * @param mongotemplate */ public void setMongoTemplate (mongotemplate mongotemplate) {this.mongotemplate = mongotemplate; } @Override public void setApplicationContext (ApplicationContext ApplicationContext) melempar BeansException {mongotemplate mongotemplate = applicationContext.getBean ("mongotemplate", mongotemplate.class); setMongoTemplate (MongoTemplate); }} Antarmuka untuk mengoperasikan database dan kelas implementasi yang sesuai:
Penambahan, penghapusan, modifikasi, dan pencarian paling mendasar ditunjukkan. Yang harus diperhatikan adalah deklarasi parameter dan konversi kelas entitas saat menerima data yang dikembalikan:
(1) Antarmuka:
paket spring_mogo.dao; impor java.util.list; impor spring_mongo.models.usermodel; Public Interface userdao { / ** * data kueri * * @author: tuzongxun * @title: findAll * @param @return * @return Daftar <SuModel> * @Date 13 Mei 2016 3:07:39 pm * @throws * / daftar publik <SUSERMODEL> findall (); / ** * Data baru * * @author: tuzongxun * @title: insertUser * @param @param pengguna * @return void * @Date 13 Mei 2016 3:09:45 pm * @throws */ public void insertUser (userModel pengguna); / ** * Hapus data * * @Author: tuzongxun * @title: removeUser * @param @param nama pengguna * @return void * @Date 13 Mei 2016 3:09:55 PM * @Throws */ public void REVEOSER (string username); / ** * Ubah Data * * @Author: Tuzongxun * @Title: UpdateAser * @param @param pengguna * @return void * @Date 13 Mei 2016 3:10:06 PM * @Throws */ Public Void UpdateUser (userModel pengguna); / ** * kueri berdasarkan kondisi * * @Author: tuzongxun * @title: findForrequery * @param * @return void * @Date 13 Mei 2016 3:23:37 PM * @Throws */ Daftar Publik <SuModel> FindForReQuery (string username); } (2) Kelas Implementasi, di sini kita perlu mewarisi kelas AbstractBasemongotempleTete, sehingga dapat memperoleh mongotemple untuk berbagai operasi:
paket spring_mogo.dao.daoimp; impor java.util.list; impor org.springframework.data.mongodb.core.query.criteria; impor org.springframework.data.mongodb.core.query.query; impor org.springframework.data.mongodb.core.query.update; impor org.springframework.stereotype.component; impor spring_mogo.dao.userdao; impor spring_mongo.models.usermodel; impor com.mongodb.basicdbObject; impor com.mongodb.dbObject; @Component ("userdaoimp") kelas publik userdaoimp memperluas abstrak abstrakbasemongotempleTete mengimplementasikan userdao { / ** * query semua data * * @author: tuzongxun * @title: findall * @description: pm * @param @return * @date 13, 2016 3:10:2.2 @param / @param @return * @date Mei 2016 2016 3:10:29 findAll () {// Kelas mayat yang sesuai dan nama koleksi yang sesuai dari koleksi perlu ditetapkan, sehingga hasil kueri secara langsung dipetakan daftar <SUMODEL> userList = mongotemplate.findall (userModel.class, "user"); mengembalikan daftar pengguna; } /** * New data* * @author: tuzongxun * @Title: insertUser * @Description: TODO * @param @param user * @date May 13, 2016 3:10:45 PM * @throws */ @Override public void insertUser(UserModel user) { // Set the document object that needs to be inserted into the database DBObject object = new BasicDBObject(); object.put ("nama pengguna", user.getusername ()); object.put ("kata sandi", user.getPassword ()); mongotemplate.insert (objek, "pengguna"); } /** * Delete data according to conditions* * @author: tuzongxun * @Title: removeUser * @Description: TODO * @param @param userName * @date May 13, 2016 3:11:01 PM * @throws */ @Override public void removeUser(String userName) { // Set the delete condition, delete all Query query = new Query(); Kriteria kriteria = kriteria baru ("nama pengguna"); kriteria.is (nama pengguna); query.addcriteria (kriteria); mongotemplate.remove (kueri, "pengguna"); } / ** * Modifikasi data * * @author: tuzongxun * @title: updateUser * @description: toDo * @param @param pengguna * @Date 13 Mei 2016 3:11:12 pm * @Throws * / @Override public void UpdateAser (UserModel user) {// Set Kondisi Modifikasi Modifikasi Modifikasi Public UpdateSer (UserModel User) { / / Set Kondisi Modifikasi Modifikasi Modifikasi Public Guery; Kriteria kriteria = kriteria baru ("nama pengguna"); criteria.is (user.getusername ()); query.addcriteria (kriteria); // Setel Konten Modifikasi UPDATED UPDATE = UPDATE.UPDATE ("Kata Sandi", user.getPassword ()); // Parameter: Kondisi kueri, ubah hasilnya, nama koleksi mongotemplate.updateFirst (kueri, perbarui, "pengguna"); } /** * Query based on the condition * * @author: tuzongxun * @Title: findForRequery * @Description: TODO * @param @param userName * @date May 13, 2016 4:08:15 PM * @throws */ @Override public List<UserModel> findForRequery(String userName) { Query query = new Query(); Kriteria kriteria = kriteria baru ("nama pengguna"); kriteria.is (nama pengguna); query.addcriteria (kriteria); // Kondisi kueri, kelas entitas yang sesuai dengan set, set daftar nama <SuModel> userList = mongotemplate.find (kueri, usermodel.class, "user"); mengembalikan daftar pengguna; }} Kelas Tes:
Untuk memverifikasi kebenaran kode dan konfigurasi di atas, kode kelas tes adalah sebagai berikut:
paket spring_mongo.test; impor java.util.list; impor org.junit.test; impor org.junit.runner.runwith; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.test.context.contextConfiguration; impor org.springframework.test.context.junit4.springjunit4classrunner; impor spring_mogo.dao.userdao; impor spring_mongo.models.usermodel; @Runwith (springjunit4classrunner.class) @contextConfiguration (lokasi = {"classpath: spring.xml"}) kelas publik mongotest {@autowired private userdao userdao; /** * Query test* * @author: tuzongxun * @Title: monFindTest * @param * @return void * @date May 13, 2016 3:27:51 PM * @throws */ @Test public void monFindTest() { List<UserModel> userModels = userDao.findAll(); if (usermodels! = null && userModels.size ()> 0) {for (userModel pengguna: userModels) {system.out.println (user.getuserName () + ":" + user.getPassword ()); } } } /** * Insert data test* * @author: tuzongxun * @Title: monInsertTest * @param * @return void * @date May 13, 2016 3:27:38 PM * @throws */ @Test public void monInsertTest() { UserModel user = new UserModel("test111", "123456"); userdao.insertuser (pengguna); this.monfindtest (); } / ** * Hapus tes * * @author: tuzongxun * @title: monremovetest * @param * @return void * @date 13 Mei 2016 3:28:06 pm * @throws * / @test public void monremovetest () {string username = "test111"; userdao.removeuser (nama pengguna); this.monfindtest (); } /** * Test modification* * @author: tuzongxun * @Title: monUpdateTest * @param * @return void * @date May 13, 2016 3:50:08 PM * @throws */ @Test public void monUpdateTest() { UserModel user = new UserModel("test111", "test"); userdao.updateuser (pengguna); this.monfindtest (); } / ** * kueri berdasarkan kondisi * * @author: tuzongxun * @title: monfindforruq * @param * @return void * @date 13 Mei 2016 4:10:53 pm * @throws * / @test public void monfindforruq () {string username = "test111"; Daftar <SuModel> usermodels = userdao.findforrequery (nama pengguna); if (usermodels! = null && userModels.size ()> 0) {for (userModel pengguna: userModels) {system.out.println (user.getuserName () + ":" + user.getPassword ()); }}}} Unduh demo di tahap selanjutnya: demo
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.