- Java/MongoDB Sürücü Kurulumu
- MongoDB Bağlantısı Kurmak
- MongoDB ile Kayıtları Listelemek
- MongoDB ile Kayıt Eklemek
- MongoDB ile Kayıt Güncelemek
- MongoDB ile Kayıt Silmek
- MongoDB ile Collection Silmek
- MongoDB ile Veritabanı Silmek
1. Java/MongoDB Sürücü Kurulumu:
MongoDB sunucusuna bağlanabilmek için java diline ait mongoDB sürücüsünü yüklemeniz gerekmektedir. Hem Linux hem Windows tabanlı sistemlerde, http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ linkinden jar dosyasını indirip projenize ekleyebilirsiniz. Ayrıca Maven destekli olan projenize aşağıda bulunan kodlamayla gerekli jar dosyasını ekleyebilirsiniz:
MongoDB sunucusuna bağlanabilmek için java diline ait mongoDB sürücüsünü yüklemeniz gerekmektedir. Hem Linux hem Windows tabanlı sistemlerde, http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ linkinden jar dosyasını indirip projenize ekleyebilirsiniz. Ayrıca Maven destekli olan projenize aşağıda bulunan kodlamayla gerekli jar dosyasını ekleyebilirsiniz:
-
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.12.4</version> </dependency>
2. MongoDB Bağlantısı Kurmak:
MongoDB sürücüsünü projenize eklemenizin ardından artık bağlantı işlemlerine başlayabiliriz. Normalde mongoDB kurulumunda bağlantı için authentication gerekmemektedir. Yani sistem kimlik doğrulama özelliği olmadan kurulmaktadır. Ancak sonrasında istenilirse kullanıcı tarafından username, password ile sisteme erişim sağlanabilir. Ayrıca MongoDB default host olarak localhost, default port olarak ise 27017 portunu kullanmaktadır. Aşağıda bulunan komutla MongoDB ye örnek bir bağlantı oluşturalım:
3. MongoDB ile Kayıtları Listelemek:MongoDB sürücüsünü projenize eklemenizin ardından artık bağlantı işlemlerine başlayabiliriz. Normalde mongoDB kurulumunda bağlantı için authentication gerekmemektedir. Yani sistem kimlik doğrulama özelliği olmadan kurulmaktadır. Ancak sonrasında istenilirse kullanıcı tarafından username, password ile sisteme erişim sağlanabilir. Ayrıca MongoDB default host olarak localhost, default port olarak ise 27017 portunu kullanmaktadır. Aşağıda bulunan komutla MongoDB ye örnek bir bağlantı oluşturalım:
-
MongoClient mongoClient = new MongoClient("localhost", 27017); DB database = mongoClient.getDB("yazilimdersi_db");
-
MongoCredential credential = MongoCredential.createCredential("kullanıcıadı", "mongodb", "şifre".toCharArray()); MongoClient mongoClient = new MongoClient(new ServerAddress("localhost"), Arrays.asList(credential)); DB database = mongoClient.getDB("yazilimdersi_db");
MongoDB bağlantısının ardından artık collectionları inceleyebiliriz. Collectionlar, mongoDB'nin odacıkları olarak isimlendirilebilir. MySQL de tablo yapısına karşılık gelmektedir ve veriler bu hücrelerde tutulmaktadır. En önemli özelliği MySQLde bulunan tablosundan farklı olarak alan ad tanımlanmasının zorunlu olmamasıdır. Ayrıca ortak şema gereksinimi de bulunmamaktadır. Veriler bu collectionlar içerisinde json olarak tutulmaktadır. Aşağıda bulunan kodlama ile belirlediğimiz herhangi bir collectiona bağlanalım. Sonrasında bu collectiona örnek data ekleyelim.
-
#ulkeler isimli collectiona bağlantı gerçekleştirelim. DBCollection col = database.getCollection("ulkeler"); #bu collectiona örnek kayıt atalım. BasicDBObject obj = new BasicDBObject() .append("id", 1) .append("ulke", "Brezilya") .append("ulkenufusu", 1000000); WriteResult result = col.insert(obj, WriteConcern.JOURNAL_SAFE);
-
#kayıtlı ulke sayısını yazalım. System.out.println("kayıtlı ulke sayısı : ".$col->count());
-
import com.mongodb.MongoClient; import com.mongodb.DBCollection; import com.mongodb.DB; import com.mongodb.BasicDBObject; import com.mongodb.DBCursor; import java.net.UnknownHostException; public class MongoDBClass { public static void main(String[] args) { try { MongoClient mongo = new MongoClient("localhost"); DB db = mongo.getDB("yazilimdersi_db"); DBCollection dbcol = db.getCollection("ulkeler"); DBCursor result = dbcol.find(); while (result.hasNext()) { System.out.println(result.next()); } } catch(UnknownHostException e) { System.out.println("Sunucu Hatası!"); } } }
-
import com.mongodb.MongoClient; import com.mongodb.DBCollection; import com.mongodb.DB; import com.mongodb.BasicDBObject; import com.mongodb.DBCursor; import java.net.UnknownHostException; public class MongoDBClass { public static void main(String[] args) { try { MongoClient mongo = new MongoClient("localhost"); DB db = mongo.getDB("yazilimdersi_db"); DBCollection dbcol = db.getCollection("ulkeler"); DBCursor result = dbcol.find("{ulkenufusu: 1000}"); while (result.hasNext()) { System.out.println(result.next()); } } catch(UnknownHostException e) { System.out.println("Sunucu Hatası!"); } } }
-
{ "_id" : { "$oid" : "4fc68190a09ef7490a0b3b40"} , "ulke" : "Brezilya" , "ulkenufusu" : "100000"}
4. MongoDB ile Kayıt Eklemek:
Yukarıdaki maddeler collectiona nasıl kayıt atıldığı ile alakalı örnek verdim. Ancak burada biraz daha detaylı olarak size sistemin nasıl çalıştığını anlatacağım. Collectionlara kayıt eklenirken insert() metodu kullanılmaktadır ve içerikler array olarak girilmektedir. Konuyla alakalı örnek kodlama şu şekildedir:
-
import com.mongodb.MongoClient; import com.mongodb.DBCollection; import com.mongodb.DB; import com.mongodb.BasicDBObject; import com.mongodb.WriteResult; import java.net.UnknownHostException; import java.util.Date; public class MongoDBClass { public static void main(String[] args) { Date date = new Date(); try { MongoClient mongo = new MongoClient("localhost"); DB db = mongo.getDB("ornekdb"); DBCollection dbcol = db.getCollection("kullanicilar"); BasicDBObject obj = new BasicDBObject() .append("id", "1") .append("kullanici", "test user") .append("sifre", "1q2w3e") .append("date", date.getTime()); WriteResult result = dbcol.insert(obj, WriteConcern.JOURNAL_SAFE); System.out.println(result); } catch(UnknownHostException e) { System.out.println("Sunucu Hatası!"); } } }
5. MongoDB ile Kayıt Güncellemek:
Collectionlarda mevcut herhangi bir kaydın güncellenmesinde ise $set ve update() keywordleri önemli bir yer tutmaktadır.Aşağıdaki kodlamada collectionlarda bulunan herhangi bir kaydın nasıl güncellediği ile alakalı örnek kodlama bulunmaktadır:
-
import com.mongodb.MongoClient; import com.mongodb.DBCollection; import com.mongodb.DB; import com.mongodb.BasicDBObject; import com.mongodb.WriteResult; import java.net.UnknownHostException; import java.util.Date; public class MongoDBClass { public static void main(String[] args) { Date date = new Date(); try { MongoClient mongo = new MongoClient("localhost"); DB db = mongo.getDB("ornekdb"); DBCollection dbcol = db.getCollection("kullanicilar"); BasicDBObject obj = new BasicDBObject() .append("id", "1") .append("kullanici", "test user2") .append("sifre", "1q2w3e") .append("date", date.getTime()); WriteResult result = _dbcol.update( new BasicDBObject("kullanici", "test user"), new BasicDBObject("$set", obj) ); if (result.getLastError().ok()) { System.out.println("Güncelleme başarılı"); } else { System.out.println("Hata mesajı : " + result.getLastError().getErrorMessage()); } } catch(UnknownHostException e) { System.out.println("Sunucu Hatası!"); } } }
-
BasicDBObject document = new BasicDBObject(); document.put("number", 2); collection.remove(document);
7. MongoDB ile Collection Silmek:
-
#silinecek collectionun belirleyelim. collection.drop();
8. MongoDB ile Veritabanı Silmek:
Aşağıdaki kodlamada veritabanın nasıl silindiği ile alakalı örnek kodlama bulunmaktadır. Burada keyword olarak dropDatabase() metodu kullanılmaktadır:
-
#veritabanı silinecektir. db.dropDatabase();