-4
我想在MongoDB和Scala中執行CRUd操作。 我已經編寫了下面的代碼。這段代碼正在編譯成功,但給出了運行時異常。我正在使用scala 2.8.can,任何1個幫助我?如何移除MongoInternalException?
錯誤而執行:線程 「main」 com.mongodb.MongoInternalException
例外: DBPort.findOne在COM在com.mongodb.DBPort.findOne(DBPort.java:153) 失敗 。 mongodb.DBPort.runCommand(DBPort.java:159) 在com.mongodb.DBTCPConnector.testMaster(DBTCPConnector.java:369) 在com.mongodb.Mongo。(Mongo.java:140) 在com.mongodb.Mongo 。(Mongo.java:124) at com.mongodb.Mongo。(Mongo.java:81) at QuickTour.main(QuickTour.java:16) Caused通過:java.io.IOException:無法連接到[/127.0.0.1:8005] bc:java.net.ConnectException:連接被拒絕:連接 在com.mongodb.DBPort._open(DBPort.java:205) 在com.mongodb.DBPort.go(DBPort.java:85) 在com.mongodb.DBPort.findOne(DBPort.java:145) ... 6個
// crud.scala
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
object crud
{
def main(args:Array[String])
{
while(true)
{
println("")
println("1.Insert ")
println("2. Retriever ")
println("3. Update")
println("4. Delete")
println("5. Exit")
println("")
println("Enter choice : ")
val ch=Console.readInt
ch match
{
case 1=>
insert();
case 2=>
retrieve() ;
case 3=>
update();
case 4=>
delete();
case 5=>
System.exit(0)
}
}
} //main
def insert()
{
println("Enter the rollno")
var roll=Console.readInt
println("Enter the name")
var name=Console.readLine
println("Enter the age")
var age=Console.readInt
println("Enter the city")
var city=Console.readLine
println("Enter the marks")
var marks=Console.readInt
val mongo = new Mongo();
var databaseName = mongo.getDB("mydb")
var collectionName = databaseName.getCollection("student")
val dbObject = new BasicDBObject()
dbObject.put("rollno", "roll")
dbObject.put("name", "name")
dbObject.put("age", "age")
dbObject.put("city", "city")
collectionName.insert(dbObject);
println("Inserted succesfully");
}
def retrieve()
{
println("Enter the rollno")
var r=Console.readInt
val mongo = new Mongo()
var databaseName = mongo.getDB("mydb")
var collectionName = databaseName.getCollection("student")
val query=new BasicDBObject();
val query1=new BasicDBObject();
query.put("marks",new BasicDBObject("$gt","70"));
var cursor = new DBCursor(collectionName,query,query1)
println("The list of students is")
while(cursor.hasNext)
{
println(cursor.next());
}
} //retrieve
def update()
{
println("Enter the rollno of student to be updated")
var no=Console.readInt
val mongo = new Mongo()
var databaseName = mongo.getDB("mydb")
var collectionName = databaseName.getCollection("student")
val query=new BasicDBObject();
val query1=new BasicDBObject();
query.put("rollno",new BasicDBObject("$eq",no));
var cursor = new DBCursor(collectionName,query,query1)
}
def delete()
{
println("Enter the rollno of student to be deleted")
var no=Console.readInt
val mongo = new Mongo()
var databaseName = mongo.getDB("mydb")
var collectionName = databaseName.getCollection("student")
val query=new BasicDBObject();
val query1=new BasicDBObject();
query.put("rollno",new BasicDBObject("$eq",no));
var cursor = new DBCursor(collectionName,query,query1)
while(cursor.hasNext)
{
collectionName.remove(cursor.next())
}
} //delete
}
1.瞭解如何讀取堆棧跟蹤。 2.不要在代碼中填入大量代碼 - 任何人都不會想要閱讀該代碼。 – 2010-11-10 06:41:35
如果您努力對代碼進行格式化以使其可讀,則您更有可能獲得答案。這次我爲你做了。 – Theo 2010-11-10 06:44:07
如果您閱讀(並按照)常見問題解答,則更有可能在此獲得有用的回覆:http://stackoverflow.com/faq。特別是,請參閱「保持良好態度」,「我在這裏如何提問?」和「如果我沒有得到很好的答案會怎麼樣?」。歡迎來到SO。 – 2010-11-11 20:18:20