Saya juga memikirkan artikel ini, pertama -tama, keterampilan saya tidak baik. Tapi saya hanya suka mempelajari sesuatu. Karena banyak teman telah menulis yang serupa sebelum ini, dan saya telah membaca banyak dari mereka, tetapi penjelasannya tidak cukup mendalam. Tidak ada jawaban untuk pertanyaan yang diajukan oleh beberapa teman. Di sini saya menyelesaikannya berdasarkan kemampuan saya saat ini. Dan akhirnya berjalan dengan sukses.
Masalah terjadi selama tes:
1. Org/springframework/data/pemetaan/konteks/pemetaancontextAware
2. SRC-Resolve: Tidak dapat menyelesaikan nama 'Repositori: Repositori' ke (n) 'Jenis Definisi'
Semua hal di atas disebabkan oleh ketidakcocokan versi. Terutama kesalahan kedua saya melihat beberapa solusi yang disebutkan JPA, tetapi saya tidak menggunakan JPA di sini. Kemudian, saya mengganti paket Spring-Data-Commons dan tidak muncul.
Izinkan saya berbicara terlebih dahulu tentang lingkungan pengembangan saya:
Myeclipse 6.5
MongoDB 2.0.8
Spring 3.0.4
Akhirnya, ada dua berikut (jika kedua versi ini salah, berbagai masalah dan rumit akan terjadi). Di sini saya akan memberikan versi yang saya gunakan
Dokumen Data Musim Semi
Spring-Data-Commons
Semua versi harus diubah. Berikut ini adalah alamat unduhan jar
http://www.springsource.org/spring-data/mongodb
http://www.springsource.org/spring-data/commons
Versi yang diunduh adalah:
Spring-Data-Commons-Dist-1.4.0.m1
Spring-Data-Document-1.0.0.m2.zip
Berikut gambar proyek saya
Kemudian mulailah perjalanan pengembangan kami!
Pertama -tama buat file konfigurasi application.xml baru
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: context = "http://www.springframework.org/schema/context" xmlns: mongo = "http://www.springframework.org/schema/data/mongo" XSI: schemalocation = "http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.sprfring http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org <Mongo: mongo host = "192.168.0.138" port = "27017"/> <bean id = "mongotemplate"> <konstruktor-arg ref = "mongo"/> <konstruktor-name = "name =" name = "name =" deFaUlne "name =" deFaUlne " id = "personRepository"> <properti name = "mongotemplate" ref = "mongotemplate"> </prop Property> </bean> <Context: annotation-config/> </beans>
Kemudian tulis antarmuka yang mengoperasikan MongoDB
/ ** * abstractrepository.java */ package com.mongo.dao; impor java.util.list; impor com.mongo.bean.person; /** * TODO * @Author culan * @Version TODO */Antarmuka Public AbstractrePository {/** * * <b> Fungsi: </b> Tambahkan objek * @author culan * @createdate 2012-12-12 11:41:30 */public void insert (orang orang); /** * * <b> Fungsi: </b> temukan objek dengan id * @Author culan * @createdate 2012-12 11:41:41 */orang publik findOne (string id); /** * * <b> Fungsi: </b> kueri semua * @author culan * @createdate 2012-12-12 16:26:06 */Daftar Publik <Son> findAll (); Daftar Publik <Fon> findByRegex (String regex); /** * * <b> Fungsi: </b> hapus objek ID yang ditentukan * @Author culan * @createdate 2012-12 16:26:16 */public void removeOne (string id); /** * * <b> Fungsi: </b> hapus semua * @author culan * @createdate 2012-12-12 16:25:40 */public void removeAll (); /** * Temukan dan modifikasi dengan ID * <b> Fungsi: </b> * @author culan * @createdate 2012-12 16:25:51 */public void findAndModify (string id); } Tulis kelas implementasi antarmuka yang sesuai:
/ ** * personrepository.java */ package com.mongo.dao.impl; impor java.util.list; impor java.util.regex.pattern; impor org.springframework.data.document.mongodb.mongotemplate; impor org.springframework.data.document.mongodb.query.criteria; impor org.springframework.data.document.mongodb.query.update; impor org.springframework.data.document.mongodb.query.update; impor com.mongo.bean.person; impor com.mongo.dao.abstractrepository; / ** * TODO * @Author culan * @Version TODO */ Public Class PersonRepository mengimplementasikan abstractrepository {private mongotemplate mongotemplate; / * (non-javadoc) * @see com.mongo.dao.abstractrepository#findAll () */ @Override List Public <fone> findAll () {// TODO Metode yang dihasilkan otomatis Stub return getMongoTemplate (). Temukan (kueri baru (), orang.class); } / * (non-javadoc) * @see com.mongo.dao.abstractrepository#findandmodify (java.lang.string) * /@override void public findandmodify (ID string) {// TODO Auto-dihasilkan Stub // New Stubery (CREERIA ("ID Where.herene)). getMongoTemplate (). updateFirst (kueri baru (kriteria.where ("id"). is (id)), pembaruan baru (). Inc ("Age", 3)); } / * (non-javadoc) * @see com.mongo.dao.abstractrepository#findByRegex (java.lang.string) * / @override Daftar publik <bon> findByRegex (string regex) {// Todo auto-generasi metode stub pola = Pattern.COMPILE (REGEX) {// TODO AUTO-METODE AUTO-METODE POLA Stub Pola Stuber = Pola.COVED (REGEX) {// TODO AUTO-METODE AUTO-METODE POLA Stub POLA = POLA.COVER (REGEX. Kriteria kriteria = kriteria baru ("nama"). Regex (pola.tostring ()); return getMongoTemplate (). find (kueri baru (kriteria), person.class); } / * (non-javadoc) * @see com.mongo.dao.abstractrepository#findOne (java.lang.string) * / @Override Public FindOne (string id) {// todo-to-dodo yang dihasilkan auto rintisan getMongoTemplate (). findone (query new query. } / * (non-javadoc) * @see com.mongo.dao.abstractrepository#insert (com.mongo.bean.person) * / @Override void public Insert (orang orang) {// TODO Metode yang dihasilkan secara otomatis Stub getMongoTemplate (). Sisipkan (orang); } / * (non-javadoc) * @see com.mongo.dao.abstractrepository#removeAll () * / @Override public void removeAll () {// TODO Metode Stub yang dihasilkan secara otomatis <bon> list = this.findall (); if (list! = null) {for (orang orang: daftar) {getMongoTemplate (). Remove (orang); }}} / * (non-javadoc) * @see com.mongo.dao.abstractrepository#remeemporOne (java.lang.string) * / @override void public rontempeOne (string id) {// todo auto-method criteria stub criteria = criteria = where ("id"). if (kriteria == null) {kueri kueri = kueri baru (kriteria); if (query! = null && getMongoTemplate (). findOne (kueri, person.class)! = null) getMongoTemplate (). hapus (getMongoTemplate (). findOne (kueri, person.class)); }} / ** * @return The MongoTemplate * / public MongoTemplate getMongoTemplate () {return mongoTemplate; } / ** * @param mongotemplate Mongotemplate untuk mengatur * / public void setMongoTemplate (mongotemplate mongotemplate) {this.mongotemplate = mongotemplate; }} Kode objek orang yang sesuai juga diberikan di sini
/ ** * person.java */ package com.mongo.bean; impor java.io.serializable; / ** * TODO * @Author culan * @Version TODO */ orang kelas publik mengimplementasikan serializable {/ ** * */ private static final long serialversionuid = 3617931430808763429l; ID string pribadi; nama string pribadi; usia int pribadi; orang publik () {super (); } orang publik (ID string, nama string, int usia) {super (); this.id = id; this.name = name; this.age = usia; } / ** * @return ID * / string publik getId () {return id; } / ** * @param id id untuk mengatur * / public void setid (string id) {this.id = id; } / ** * @return nama * / public string getName () {return name; } / ** * @param Nama Nama yang akan ditetapkan * / public void setName (nama string) {this.name = name; } / ** * @return The Age * / public int getage () {return usia; } / ** * @param Usia untuk mengatur * / public void setage (int usia) {this.age = usia; } / ** * * @param nama * @param usia * / orang publik (nama string, int usia) {super (); this.name = name; this.age = usia; } public string toString () {return "person [id ="+id+", name ="+name+", usia ="+usia+"]"; }} Akhirnya tuliskan kelas tes kami dan mulailah menguji
/ ** * mongotest.java */ package com.mongo.test; impor java.util.list; impor org.apache.commons.logging.log; impor org.apache.commons.logging.logfactory; impor org.springframework.context.applicationContext; impor org.springframework.context.support.classpathxmlapplicationContext; impor com.mongo.bean.person; impor com.mongo.dao.abstractrepository; impor com.mongo.dao.impl.personRepository; / ** * TODO * @Author culan * @Version TODO */ kelas publik mongotest {private static log log = logfactory.getLog (mongotest.class.getName ()); private abstractrepository pr = null; /** * * <b> fungsi: </b> * @author culan * @createdate 2012-12-12 16:08:02 */public void init () {log.debug ("Mulai mulai"); ApplicationContext ctx = new ClassPathXMLapPlicationContext ("ApplicationContext.xml"); pr = (personRepository) ctx.getBean ("personRepository"); }/** * * <b> Fungsi: </b> Tambahkan * @Author culan * @createdate 2012-12-12 16:11:01 */public void insert () {Person P = orang baru ("Curian", 27); pr.insert (p); log.debug ("berhasil ditambahkan"); }/** * * <b> Fungsi: </b> Pencarian objek berdasarkan ID input * @Author culan * @createdate 2012-12-12 16:24:10 */public void findOne () {string id = "50c83cb552c2ceb046317d6"; Orang p = pr.findone (id); log.debug (p); }/** * * <b> Fungsi: </b> kueri semua * @author culan * @createdate 2012-12 16:08:54 */public void listAll () {list <fone> list = pr.findall (); log.debug ("Hasil kueri adalah sebagai berikut:"); untuk (orang p: daftar) {log.debug (p.toString ()); }}/** * * <b> Fungsi: </b> Metode tes * @author culan * @createDate 2012-12-12 16:11:37 */public void start () {init (); //menyisipkan(); // listall (); findOne (); }/** * <b> Fungsi: </b> fungsi utama * @Author culan * @createdate 2012-12 11:54:30 */public static void main (string [] args) {// TODO Metode yang dihasilkan otomatis Stub Mongotest t = mongotest baru (); t.start (); }}Ketika log muncul setelah lari, tidak ada masalah.
2012-12 16: 23: 59: debug com.mongo.test.mongotest-Mulai Mulai 2012-12-12 16: 23: 59: info org.springframework.context.support.classpathxmlapplicationContext-Refreshing org.springframework.context.support.support.support.sportxports [Rabu 12 Des 16:23:59 CST 2012]; root of context hierarchy 2012-12 16:23:59:INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml] 2012-12-12 16:24:00:INFO org.springframework.beans.factory.support.defaultlistableBeanFactory - pra -instansiasi singleton di org.springframework.beans.factory.support.defaultListableBeanFactory@12a0f6c: mendefinisikan kacang kedokteran [Mongo, Mongotemplate, PersonRepository, org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalautowi redannotationprocessor, org.springframework.context.annotation.internalrequiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor]; Root of Factory Hierarchy 2012-12-12 16: 24: 00: debug com.mongo.test.mongotest-orang [id = 50c83cb552c2ceb0463177d6, name = cuiran, usia = 27]
Lampirkan kode sumber demo di sini: 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.