هناك مقال في السجل السابق أنه بدون استخدام الربيع ، يقوم مباشرة بتوصيل قاعدة بيانات MongoDB في رمز Java. سنقوم هنا بتسجيل ذلك عند استخدام Spring ، عملية بسيطة لـ MongoDB في Java.
تكوين حزمة Maven:
لأنه يتضمن Spring و SpringMVC ، من الضروري أيضًا استيراد حزمهما ذات الصلة:
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/maven-v4_0_0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> spring_mongo </groupid> <shintifactid> spring_mongo </shintifactid> webapp </mame> <Url> http://maven.apache.org </url> <ependencies> <redency> <roupend> org.springframework.data </groupId> </////intipence> spring-data-mongodb </attifactid> <roupl> org.mongodb </groupId> <StifactId> mongo-java-driver </intifactid> <sophy> 3.0.3 </version> </sependency> <redence> <roupid> commons-logging </groupid> <Groper> org.springframework </rougiD> <StifactId> اختبار الربيع </artifactid> <الإصدار> 4.1.6.RELEASE </version> </repreadency> <sebread> <roupid> Junit </rougiD> <StifactId> Junit </attifactid> <roupl> org.springframework </rougiD> <StifactId> spring-context </shintifactid> <الإصدار> 4.1.7.Release </version> </repreadency> <preensid> <roupid> org.springframework </rougeid> spring-contx </reperency> </preminency> <build> <clupins> <clupin> <StifactId> maven-compiler-plugin </stifactid> <الإصدار> 2.3.2 </version> <suction> <ouster> 1.7 </ource> <sharge> 1.7 </isplic> <TOTClassPath> $ {java.home} /lib/rt.jar ؛ $ {java.home} /lib/jce.jar </booclasspath> </sownlarguments> </sugment> </sultiin> </lopliins> تكوين الربيع الأساسي:
بشكل رئيسي ، هو تمكين مسح التعليق التوضيحي ، إلخ:
<؟ Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" http://www.springframework.org/schema/beans http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-taSk-3 Resource = "Spring-mongodb305.xml" /> <!-قم بتشغيل التعليق التوضيحي-> <السياق: التعليق التوضيحي /> < /beans>
يربط الربيع mongodb ويؤسس تكوينات للمصانع ذات الصلة:
<؟ xmlns: p = "http://www.springframework.org/schema/p" XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/data/mongo/spring-mongo.xsd "> <!-تكوين الربيع للاتصال بقاعدة بيانات mongodb-> <mongo: مضيف mongo-client =" 192.168.0.0.201 "port =" 27017 " بيانات الاعتماد = "tuzongxun: 123456@mongotest" id = "mongo"> <mongo: خيارات العميل الكتابة = "آمن"/> </mongo: mongo-client> <mongo: db-factory id = "mongodbfactory الطريقة المقابلة-> <bean id = "mongotemplate"> <constructor-arg name = "mongodbfactory" ref = "mongodbfactory"/> </bean> </bans>
فئة الكيان المقابلة لقاعدة البيانات:
تجدر الإشارة إلى أنه يجب تنفيذ الواجهة التسلسلية ويتم تعيين سمة UID ، وإلا لا يمكن تحويل نتيجة إرجاع قاعدة البيانات مباشرة إلى سمات الكائن أثناء العملية:
حزمة spring_mongo.models ؛ استيراد java.io.serializable ؛ الطبقة العامة usermodel تنفذ قابلة للتسلسل {private static final long serialversionuid = 1L ؛ اسم المستخدم الخاص بالسلسلة الخاصة ؛ كلمة مرور السلسلة الخاصة ؛ public UserModel (username string ، string password) {super () ؛ this.username = اسم المستخدم ؛ this.password = كلمة المرور ؛ } السلسلة العامة getUserName () {return username ؛ } public void setusername (string username) {this.userName = username ؛ } السلسلة العامة getPassword () {return password ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ }} الحصول على mongotemplete التي تدير mongoDB وفقا لتكوين الربيع ، وتحتاج إلى تنفيذ واجهة ApplicationContextAware:
حزمة spring_mogo.dao.daoimp ؛ استيراد org.springframework.beans.beansexception ؛ استيراد org.springframework.context.applicationContext ؛ استيراد org.springframework.context.applicationContextAware ؛ استيراد org.springframework.data.mongodb.core.mongotemplate ؛ Public Abstract Class AbstractBasEmongotemplete تنفذ ApplicationContextAware {محمي mongotemplate mongotemplate ؛ / ** * description set mongotemplate وفقًا لملف التكوين * param mongotemplate */ public void setMongotemplate (mongotemplate mongotemplate) {this.mongotemplate = mongotemplate ؛ } Override public void setapplicationContext (ApplicationContext ApplicationContext) يلقي beansexception {mongotemplate mongotemplate = applicationContext.getBean ("mongotemplate" ، mongotemplate.class) ؛ setMongotemplate (mongotemplate) ؛ }} الواجهة لتشغيل قاعدة البيانات وفئة التنفيذ المقابلة:
وأظهرت الإضافة الأساسية والحذف والتعديل والبحث. ما ينبغي الانتباه إليه هو إعلان المعلمات وتحويل فئة الكيان عند تلقي البيانات التي تم إرجاعها:
(1) الواجهة:
حزمة spring_mogo.dao ؛ استيراد java.util.list ؛ استيراد spring_mongo.models.usermodel ؛ الواجهة العامة userDao { / ** * بيانات الاستعلام * * Author: Tuzongxun * title: findall * param @return list <SterModel> * date 13 مايو ، 2016 3:07:39 PM * throws * / public list <Usermodel> findall () ؛ / ** * بيانات جديدة * * Author: Tuzongxun * title: insertuser * paramparam user * return void * date 13 مايو ، 2016 3:09:45 PM * throws */ public void insertuser (usermodel user) ؛ / ** * حذف البيانات * * author: tuzongxun * title: removeUser * paramparam username * return void * date 13 مايو ، 2016 3:09:55 pm * throws */ public void removeUser (string username) ؛ / ** * تعديل البيانات * * Author: Tuzongxun * Title: UpdateUser * paramparam user * return void * date 13 مايو ، 2016 3:10:06 PM * throws */ public void updateUser (usermodel user) ؛ / ** * Query by Condite * * Author: Tuzongxun *title: findForRequery * param * return void * date 13 مايو ، 2016 3:23:37 PM * throws */ public list <SterModel> findForRequery (string username) ؛ } (2) فئة التنفيذ ، هنا نحتاج إلى ورث فئة AbstractBaseMongotemplete ، وذلك للحصول على mongotemplete لمختلف العمليات:
حزمة spring_mogo.dao.daoimp ؛ استيراد java.util.list ؛ استيراد org.springframework.data.mongodb.core.query.criteria ؛ استيراد org.springframework.data.mongodb.core.query.query ؛ استيراد org.springframework.data.mongodb.core.query.update ؛ استيراد org.springframework.stereotype.component ؛ استيراد spring_mogo.dao.userdao ؛ استيراد spring_mongo.models.usermodel ؛ استيراد com.mongodb.basicdbobject ؛ استيراد com.mongodb.dboBject ؛ component ("userDaoimp") الفئة العامة userDaoimp تمتد agrussebasemongotemplete تنفذ userdao { / ** * Query all data * * author: tuzongxun * title: findall * @description: todo * param return * date 13 مايو ، 2016 3:10:29 pm * {// يجب تعيين فئة الجثة المقابلة واسم المجموعة المقابلة للمجموعة ، بحيث يتم تعيين نتيجة الاستعلام مباشرة <Sermodel> userlist = mongotemplate.findall (usermodel.class ، "user") ؛ إرجاع قائمة المستخدمين ؛ } / ** * بيانات جديدة * * Author: tuzongxun * title: insertUser * description: todo * paramparam user * date مايو 13 ، 2016 3:10:45 pm * throws * / @override public void insertuser (usermodel user) BasicDbObject () ؛ Object.put ("username" ، user.getUserName ()) ؛ Object.put ("كلمة المرور" ، user.getPassword ()) ؛ mongotemplate.insert (كائن ، "المستخدم") ؛ } / ** * حذف البيانات وفقًا للشروط * * Author: tuzongxun * title: removeUser * description: tode * param @param username * @date 13 مايو ، 2016 3:11:01 pm * throws * / @new query query = معايير المعايير = معايير جديدة ("اسم المستخدم") ؛ المعايير. (اسم المستخدم) ؛ Query.AddCriteria (معايير) ؛ mongotemplate.remove (استعلام ، "المستخدم") ؛ } / ** * تعديل البيانات * * Author: Tuzongxun * title: updateUser * description: tode * paramparam user * date مايو 13 ، 2016 3:11:12 pm * throws * / @ @ @ معايير المعايير = معايير جديدة ("اسم المستخدم") ؛ المعايير. IS (user.getUserName ()) ؛ Query.AddCriteria (معايير) ؛ // تعيين تحديث محتوى التعديل = update.update ("كلمة المرور" ، user.getPassword ()) ؛ // المعلمات: شروط الاستعلام ، تغيير النتيجة ، اسم المجموعة mongotemplate.updatefirst (استعلام ، تحديث ، "المستخدم") ؛ } / ** * Query استنادًا إلى الشرط * * Author: tuzongxun * title: findForRequery * description: toDo * paramparam username * @ @date 13 ، 2016 4:08:15 pm * @therwes * / override public list <Sermodel> findForRequery (string userquery) معايير المعايير = معايير جديدة ("اسم المستخدم") ؛ المعايير. (اسم المستخدم) ؛ Query.AddCriteria (معايير) ؛ // حالة الاستعلام ، فئة الكيان المقابلة لقائمة الأسماء ، SET SET <SERMODEL> userList = mongotemplate.find (QUERY ، USERMODEL.CLASS ، "user") ؛ إرجاع قائمة المستخدمين ؛ }} فئة الاختبار:
من أجل التحقق من صحة الرمز والتكوين أعلاه ، يكون رمز فئة الاختبار كما يلي:
حزمة spring_mongo.test ؛ استيراد java.util.list ؛ استيراد org.junit.test ؛ استيراد org.junit.runner.runwith ؛ استيراد org.springframework.beans.factory.annotation.autowired ؛ استيراد org.springframework.test.context.contextConfiguration ؛ استيراد org.springframework.test.context.junit4.SpringJunit4ClassRunner ؛ استيراد spring_mogo.dao.userdao ؛ استيراد spring_mongo.models.usermodel ؛ Runwith (springJunit4ClassRunner.Class) contextConfiguration (مواقع = {"classpath: spring.xml"}) الفئة العامة mongotest {autowired private userdao userdao ؛ / ** * اختبار الاستعلام * * Author: tuzongxun * title: monfindtest * param * return void * date 13 مايو ، 2016 3:27:51 pm * therws */ test public void monfindtest () {list <Usermodel> usermodels = userdao.findall () ؛ if (usermodels! = null && usermodels.size ()> 0) {for (usermodel user: usermodels) {system.out.println (user.getusername () + ":" + user.getPassword ()) ؛ }}} / ** * إدراج اختبار البيانات * * Author: Tuzongxun * title: moninserttest * param * @void * @ @13 مايو ، 2016 3:27:38 PM * throws * / test public void moninsertest () {usermodel user = new usermodel ( userDao.insertuser (المستخدم) ؛ this.monfindtest () ؛ } / ** * حذف الاختبار * * author: tuzongxun * title: monremovetest * param * return void * date 13 مايو ، 2016 3:28:06 PM * throws * / test public void monremovetest () {String username = "test111" ؛ userDao.RemoveUser (اسم المستخدم) ؛ this.monfindtest () ؛ } / ** * تعديل الاختبار * * Author: tuzongxun * title: monupDateTest * param * return void * date 13 مايو ، 2016 3:50:08 pm * throws * / test public void monupdatetest () {usermodel user = new usermodel ("test111" ، "" userDao.updateuser (user) ؛ this.monfindtest () ؛ } / ** * QUERY by condition * * Author: tuzongxun * title: monfindforruq * param * return void * date 13 مايو ، 2016 4:10:53 pm * throws * / test public void monfindforruq () {string username = "test111" ؛ قائمة <Usermodel> userModels = userDao.findForRequery (اسم المستخدم) ؛ if (usermodels! = null && usermodels.size ()> 0) {for (usermodel user: usermodels) {system.out.println (user.getusername () + ":" + user.getPassword ()) ؛ }}}} قم بتنزيل العرض التوضيحي في المرحلة اللاحقة: العرض التوضيحي
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.