[데이터베이스] 몽고DB(MongDB) - JSP,Servlet - ajax 연동 예제
[데이터베이스] 몽고DB(MongoDB) 무료 mlab 사용기
[데이터베이스] 몽고DB(MongDB) 이클립스 jar 추가하기
지금 보시는 예제는 아래의 mlab를 통해서 진행이 되기 때문에,
이미 몽고DB가 Localhost가 없으신 분이라면,
아래의 글을 읽고, 설정을 마치시고 오시면, 빠르게 진행하실 수 있습니다.
[데이터베이스] 몽고DB(MongoDB) 무료 mlab 사용기 보러가기
mlab도 했다! 또는 Localhost에 있다!
근데, jar 파일 없다!
그러면, 아래에 글을 읽고, 설정을 마치고 오시길 바랍니다.
[데이터베이스] 몽고DB(MongDB) 이클립스 jar 추가하기 보러가기
JSP 화면
JSP에서는 버튼 클릭 할때, jsonSend 함수가 실행됩니다
jsonSend함수에서는 Objet data = {} 구문을 넘겨줍니다.
여기 예제에서는 object를 넘겨주지는 않지만, servlet에서는 find를 살짝 다루기 때문에,
응용을 하실 분은 사용하셔도 좋을 것 같습니다 .
결과 값을 object 값을 받아서 alert로 띄어줍니다.
![](https://t1.daumcdn.net/cfile/tistory/99929F505AEB172426)
<body>
<p>테스트</p>
<button id="jsonSend" type="button"> mongodb 값 가져오기 실행</button>
<script>
$('#jsonSend').click(function () {
jsonSend();
});
function jsonSend() {
$.ajax({
type: "POST",
url: "/TistoryExample/Mongodb_test1",
data: {}, //json을 보내는 방법
success: function (data) { //서블렛을 통한 결과 값을 받을 수 있습니다.
alert(data);
console.log(data);
},
error: function (e) {
console.log(e);
alert('저장에 실패했습니다.');
}
});
}
</script>
</body>
java servlet 페이지
예제에서는 json array 방식으로 돌려주기위해서
json-simple-1.1.jar를 파일이 필요합니다.
추가적으로 json import도 해줍니다.
//추가 import
import java.io.PrintWriter;
import org.json.simple.JSONObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import com.mongodb.BasicDBObject;
import com.mongodb.client.MongoCursor;
Mlab으로 진행하시는 분들은
빨간색 테두리를 둘려진 곳에 서버로 접근하는 값들이 적혀있습니다.
그리고, 유저탭에서 생성한 아이디와 비밀번호로 접근이 가능합니다.
![](https://t1.daumcdn.net/cfile/tistory/9937844E5AEB1A690B)
주석으로 처리된 부분에 자세한 설명이 있습니다.
간략히 설명을 드리면, mlab의 몽고db의 데이터베이스에 접근하여,
접근한 db의 collection의 접근합니다.
접근 후에, 내용 중에 "_id"값에 결과를 Object화 시켜서 ajax를 통해서 반환합니다.
@SuppressWarnings("resource")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// doGet(request, response);
PrintWriter out = response.getWriter(); //Array 값을 보내주기 위해서
//https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongo-java-driver/
try {
String mongo_id = "test";
String mongo_pass = "test";
String monogoUrl = "mongodb://"+mongo_id+":"+mongo_pass+"@ds113700.mlab.com:13700/mongo_jsp_test_";
// 내가 접속할 mongodb url 과 id는 'test' , 비번은 'test' 설정되어 있습니다.
MongoClientURI uri = new MongoClientURI(monogoUrl);
// 관련 문서 : http://api.mongodb.com/java/current/com/mongodb/MongoClientURI.html
// MongoClient 인스턴스를 생성하는 데 사용할 수있는 URI를 나타냅니다. URI는 사용할 호스트와 옵션을 설명합니다.
MongoClient mongoClient = new MongoClient(uri);
// MongoClient를 통해서 접속할 MongoDB 서버와 연결해줍니다
MongoDatabase db = mongoClient.getDatabase(uri.getDatabase());
// mongo_jsp_test_ 데이터베이스를 연결합니다.
MongoCollection<Document> test = db.getCollection("test_collection");
// mongo_jsp_test_ 데이터베이스 안에 test_collection(맞는 표현인지는 알 수 없지만) mysql 테이블 처럼 접근합니다.
BasicDBObject searchQuery = new BasicDBObject();
//mysql query문을 만들 때, 조건문과 같은 역할을 한다.
//여기서 빼고 진행하겠다.
//searchQuery.put("test","test");
//MongoCursor<Document> cur = test.find(searchQuery).iterator();
MongoCursor<Document> cur = test.find().iterator();
// select * from과 같다라고 생각하시면 된다.
JSONObject r_Json = new JSONObject();// object 값으로 전달해주기 위해서
try {
while (cur.hasNext()) {
Document document = cur.next();
//document 관한 설명 자료
//http://api.mongodb.com/java/current/org/bson/Document.html
System.out.println(document.get("_id"));
//primary key 비슷하게 사용된다.
r_Json.put("_id",document.get("_id"));
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
cur.close();
mongoClient.close();
//사용한 자원 반납
out.print(r_Json);
//object를 전달
}
} catch (Exception e) {
//TODO: handle exception
e.printStackTrace();
}
}
결과화면 - jsp 페이지
![](https://t1.daumcdn.net/cfile/tistory/99C22F4C5AEB1B2F25)
도움이 되셨다면, 구독과 좋아요.... 아니아니 ...
공감 버튼 꾸욱 눌러주세요 ~~