MongoDB เป็นผลิตภัณฑ์ระหว่างฐานข้อมูลเชิงสัมพันธ์และฐานข้อมูลที่ไม่สัมพันธ์ รูปแบบการจัดเก็บไฟล์คือ BSON (ส่วนขยายของ JSON) ที่นี่เราแนะนำ Java เพื่อใช้ MongoDB Connection Pool โดยใช้แพ็คเกจ Mongo-2.7.3.jar การใช้งานรหัส Java ที่เฉพาะเจาะจงมีดังนี้:
พารามิเตอร์การกำหนดค่าพูลการเชื่อมต่อฐานข้อมูล:
/ ***@คำอธิบาย: ไฟล์การกำหนดค่าพูลการเชื่อมต่อ Mongo*/ แพ็คเกจ cn.lulei.mongo.pool; คลาสสาธารณะ Mongoconfig {สตริงคงที่ส่วนตัวชื่อผู้ใช้ชื่อ; // ชื่อผู้ใช้สตริงสแตติกส่วนตัว pwd; // รหัสผ่านสตริงสแตติกส่วนตัว [] โฮสต์; // โฮสต์ที่อยู่ส่วนตัวคงที่ int [] พอร์ต; // ที่อยู่พอร์ตสตริงคงที่ส่วนตัว dbname; // ฐานข้อมูล 10; // จำนวนเธรดคิวการรับรองความถูกต้องแบบบูลีนแบบคงที่ส่วนตัว = false; // คือการตรวจสอบความถูกต้องจำเป็นต้องใช้สตริงคงที่สาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะคงที่สาธารณะ setUserName (ชื่อผู้ใช้สตริง) {mongoconfig.username = ชื่อผู้ใช้; } สตริงคงที่สาธารณะ getpwd () {return pwd; } โมฆะคงที่สาธารณะ setpwd (สตริง PWD) {mongoconfig.pwd = pwd; } สตริงคงที่สาธารณะ [] gethost () {return host; } โมฆะคงที่สาธารณะ sethost (สตริง [] โฮสต์) {mongoconfig.host = โฮสต์; } สาธารณะคงที่ int [] getPort () {พอร์ต return; } โมฆะคงที่สาธารณะ setport (int [] พอร์ต) {mongoconfig.port = พอร์ต; } สตริงคงที่สาธารณะ getDbName () {return dbname; } โมฆะคงที่สาธารณะ setDbName (สตริง dbname) {mongoconfig.dbname = dbname; } สาธารณะคงที่ int getConnectionsPerHost () {return connectionsPerhost; } โมฆะคงที่สาธารณะ setConnectionsPerHost (int connectionsPerHost) {Mongoconfig.connectionsPerhost = การเชื่อมต่อ hOHST; } สาธารณะคงที่ int getThreadsallowedtoblockForConnectionMultiplier () {return threadsallowedtoblockforconnectionMultiplier; } โมฆะคงที่สาธารณะ setThreadsallowedtoblockForConnectionMultiplier (int threadsallowedtoblockforconnectionMultiplier) {mongoconfig.threadsallowedtoblockforconnectionmultiplier = ThreadsallowedtoblockForConnectionMultiplier; } public boolean isauthentication () {return uthentication; } โมฆะคงที่สาธารณะ setauthentication (การตรวจสอบสิทธิ์บูลีน) {Mongoconfig.authentication = การตรวจสอบ; - คลาสการจัดการฐานข้อมูลการเชื่อมต่อฐานข้อมูล:
/ ***@คำอธิบาย: Mongo Database Connection Pool Management Class*/ แพ็คเกจ cn.lulei.mongo.pool; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า com.mongoDb.db; นำเข้า com.mongodb.dbcollection; นำเข้า com.mongoDb.mongo; นำเข้า com.mongoDb.mongooptions; นำเข้า com.mongoDb.readpreference; นำเข้า com.mongoDb.serveraddress; Mongomanager ชั้นเรียนสาธารณะ {ส่วนตัว Mongo Mongo; DB ส่วนตัว DB; คงที่ {init (); } / ** * @param dbname * @param ชื่อผู้ใช้ * @param pwd * อินสแตนซ์ dbname a db * / mongomanager สาธารณะ (สตริง dbname, สตริงผู้ใช้, สตริง pwd) {ถ้า (dbname == null || ".equals (dbname) } db = mongo.getDb (dbname); if (mongoconfig.isauthentication () &&! db.isauthenticated ()) {ถ้า (ชื่อผู้ใช้ == null || "" .Equals (ชื่อผู้ใช้)) {โยน numberFormatexception ใหม่ ("ชื่อผู้ใช้คือ null"); } if (pwd == null || "" .equals (pwd)) {โยน numberFormatexception ใหม่ ("PWD เป็น null"); } db.authenticate (ชื่อผู้ใช้, pwd.tochararray ()); }} / *** อินสแตนซ์โดยใช้พารามิเตอร์การกำหนดค่า* / Public Mongomanager () {this (mongoconfig.getDbname (), mongoconfig.getUsername (), mongoconfig.getpwd ()); } / ** * @param tablename * @return * @description: รับลิงก์ไปยัง tablename dbcollection * / dbcollection สาธารณะ getDbCollection (String tablename) {return db.getCollection (Tablename); } / *** @description: Mongo Connection Pool Initialization* / Void Static Void Init () {ถ้า (Mongoconfig.getHost () == NULL || Mongoconfig.getHost () ความยาว == 0) } if (mongoconfig.getport () == null || mongoconfig.getport (). length == 0) {โยน numberFormatexception ใหม่ ("พอร์ตคือ null"); } if (mongoconfig.getHost (). ความยาว! = mongoconfig.getport (). ความยาว) {โยน numberFormatexception ใหม่ ("ความยาวของโฮสต์ไม่เท่ากับความยาวของพอร์ต"); } ลอง {// รายการบริการรายการ <ServerAddress> replicAsetSeeds = new ArrayList <ServerAddress> (); สำหรับ (int i = 0; i <mongoconfig.getHost (). length; i ++) {replicasetseeds.add (Serveraddress ใหม่ (Mongoconfig.getHost () [i], Mongoconfig.getport () [i])); } // การตั้งค่าพารามิเตอร์พารามิเตอร์การเชื่อมต่อตัวเลือก mongooptions = mongooptions ใหม่ (); ตัวเลือก connectionsperhost = mongoconfig.getconnectionsperhost (); ตัวเลือก ThreadsallowedtoblockForConnectionMultiplier = Mongoconfig.getThreadsallowedtoblockForConnectionMultiplier (); Mongo = New Mongo (replicasetseeds, ตัวเลือก); // อ่านได้จากเซิร์ฟเวอร์ mongo.setReadPreference (readpreference.secondary); } catch (exception e) {e.printstacktrace (); - มาดูวิธีใช้พูลการเชื่อมต่อนี้ผ่านคลาสทดสอบอย่างง่าย ~
/ ***@คำอธิบาย: การทดสอบ Mongo*/ แพ็คเกจ cn.lulei.mongo.test; นำเข้า cn.lulei.mongo.pool.mongoconfig; นำเข้า cn.lulei.mongo.pool.mongomanager; การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// todo วิธีการที่สร้างอัตโนมัติ stub string [] host = {"127.0.0.1"}; int [] พอร์ต = {27001}; Mongoconfig.sethost (โฮสต์); Mongoconfig.setport (พอร์ต); Mongoconfig.setdbname ("นวนิยาย"); Mongomanager Mongomanager = New Mongomanager (); Mongomanager.getDbcollection ("บท"); -เมื่อใช้คลาสการจัดการข้างต้นคุณจะต้องเริ่มต้นคลาส Mongoconfig สำหรับอินสแตนซ์ของ Mongomanager คุณสามารถใช้การกำหนดค่า Mongoconfig หรือตั้งค่าด้วยตัวเอง ทุกครั้งที่คุณได้รับ dbcollection คุณจะต้องโทรหาวิธี getDbCollection (string tablename) เท่านั้น
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่าคำอธิบายในบทความนี้จะเป็นประโยชน์สำหรับทุกคนในการเรียนรู้การเขียนโปรแกรม Java