[데이터베이스] 몽고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로 띄어줍니다.





<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으로 진행하시는 분들은 

빨간색 테두리를 둘려진 곳에 서버로 접근하는 값들이 적혀있습니다.

그리고, 유저탭에서 생성한 아이디와 비밀번호로 접근이 가능합니다.



주석으로 처리된 부분에 자세한 설명이 있습니다.

간략히 설명을 드리면, 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 페이지










도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~





블로그 이미지

미나미나미

,

[데이터베이스] 몽고DB(MongDB) 이클립스 jar 추가하기


[데이터베이스] 몽고DB(MongoDB) 무료 mlab 사용기

[데이터베이스] 몽고DB(MongDB) - JSP,Servlet - ajax 연동 예제



JSP - 몽고DB를 사용하기 위해서는 jar 파일이 필요합니다.

DB connector를 위해서는 추가를 해주어야 합니다.



MongoDB java Driver 다운받으러가기

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongo-java-driver/





몽고(Mongo)를 사용하기 위해서 전 3.5 버전을 다운 받았습니다. 


그리고, jar를 파일을 WebContent - WEB-INF - lib 아래에 드래그해서 넣어주시면 됩니다.


참 쉽죠!









도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~




블로그 이미지

미나미나미

,

[데이터베이스] 몽고DB(MongoDB) 무료 mlab 사용기


몽고DB 테스트나 간편하게 사용하기 위해서 

mlab이라는 사이트에서  mongodb 500mb까지 무료로 지원해준다고 하네요.

가입 및 몇가지 설정을 해두려고 합니다.



mlab에 대한 이미지 검색결과

https://mlab.com





일단, mlab을 가입하신 후에, 

테스트를 위해서 몇가지를 해주셔야 합니다.



자, 일단 가입을 하셨다고 생각하겠습니다.

그 이전 절차는..화이팅!!!!!

우리가 조금은 알고 있는 Mysql 개념으로 진행하도록 하겠습니다. 

Create new 를 통해서 새로운 Database를 생성하겠습니다.






우리가 선택이 가능한 곳은 3곳입니다.


이중에서 테스트를 위한 것이니 amazon를 선택하고,

샌드박스에서 500MB를 무료로 지원해주니 

이것으로 진행하도록 하겠습니다.





Database의 이름을 지정해줍니다.

차후에, 이 데이터베이스명으로 접근하는 경우가 있으니 

이름에 민감하신분들 잘 정해서 사용하시길 바랍니다.




Database의 설정한 내용이 나오고, SUMBIT ORDER를 합니다.









Database의 생성한 결과가 노란 테두리안에 있습니다. 


노란 테두리 안을 클릭을 합니다.




Database를 생성하였으니 이번에는  table(collection)를 생성하도록 하겠습니다. 

Add collection 버튼을 클릭합니다.





table(collection)의 이름을 생성합니다.






collection(mysql에서는 테이블)를 생성하였으니 이번에는   

데이터를 집어넣도록 하겠습니다.




collection(mysql에서는 테이블)를 생성하였으니 이번에는   

데이터를 집어넣도록 하겠습니다.


아 Add document를 눌러주고, {}안에 "test" : "테스트를 해보자고요!" 라고 넣어주었습니다.


아래의 이미지처럼 진행해주시면 됩니다.


그리고, 왼쪽 오른쪽에 db : "test_mongodb" 를 눌러서 완료합니다.




데이터를 1개 넣어주었기 때문에 documents 1개가 표시가 됩니다.










차후에 , 몽고db에 접근을 위해서는 Users 탭에서 id와 pass를 생성해주어야 합니다.




username : test , pass : test 라고 만들어서 진행하였습니다.

완료 후에 , Users 탭에 test라는 항목이 생성이 되었습니다.









도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~



블로그 이미지

미나미나미

,

[데이터베이스] 마리아DB(MariaDB) - JSP,Servlet - ajax 연동 예제


[데이터베이스] MariaDB 설치하기 보러가기

[데이터베이스] 마리아DB(MariaDB) - 이클립스 연동 보러가기



 [데이터베이스] 마리아DB(MariaDB) - 이클립스 연동  다음편으로 이번에는 

마리아DB(MariaDB) - JSP - ajax 연동 예제를 다뤄 보겠습니다.


사용할 sql 구문은 show databases; 입니다.




JSP 화면 


JSP에서는 버튼 클릭 할때, jsonSend 함수가 실행됩니다

jsonSend함수에서는 Objet data = {sql : 'show databases'} 구문을 넘겨줍니다.


show databases의 결과 값을 object 값을 받아서 

alert로 띄어줍니다.




<body>
<p>테스트</p>
<button id="jsonSend" type="button"> show databases; 구문 실행</button>
<script>
$('#jsonSend').click(function () {
jsonSend();
});

function jsonSend() {
$.ajax({
type: "POST",
url: "/TistoryExample/MariaDB_test1",
data: {sql : 'show databases;'}, //json을 보내는 방법
success: function (data) { //서블렛을 통한 결과 값을 받을 수 있습니다.
alert(data);
},
error: function (e) {
console.log(e);
alert('저장에 실패했습니다.');
}
});
}
</script>
</body>


java servlet 페이지


sql를 사용하기 위해서는 sql에 필요한 import를 해줍니다.


또한, 예제에서는 json array 방식으로 돌려주기위해서 

json-simple-1.1.jar를 파일이 필요합니다. 

추가적으로 json import도 해줍니다.


jsp 페이지에 보내준 sql 구문의 값을 통해서 

jsp 페이지에 결과 값을 보내줍니다.


//추가 import
import java.io.PrintWriter;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //doGet(request, response);
        System.out.println("MariaDB_test1 doPost 메소드가 실행되었습니다.");
        request.setCharacterEncoding("UTF-8");
        //response.setContentType("text/html;charset=utf-8");//string으로 반환
        response.setContentType("application/json"); //json으로 방식으로 반환하기 위해서

        String sql = (String)request.getParameter("sql");
        //show databases; sql 구문이 옵니다.

        Connection conn = null//mariadb와 연결르 위한 conn
        Statement stmt = null; //
        ResultSet resultset = null; //query의 테이블 결과를 받기 위해서
        
        JSONArray r_arr = new JSONArray(); /// 결과를 보내줄 Array
        PrintWriter out = response.getWriter(); //Array 값을 보내주기 위해서

        String db_id = "root";
        String db_pass = "";
        String db_server = "jdbc:mysql://localhost:3306/test";
        try {
            Class.forName("org.mariadb.jdbc.Driver"); //mariadb jar를 통한 연결
            conn = DriverManager.getConnection(db_server, db_id, db_pass);
            
     try {
     stmt = conn.createStatement(); //데이터베이스 sql문을 보내기 위한 개

     if (stmt.execute(sql)) { // 실행이 성공한 경우
     resultset = stmt.getResultSet();
                }else{ // 실패한 경우
                    resultset = null;
                }
     while (resultset.next()) { // 커서의 위치를 false나올때까지 돕니다
                    System.out.println(resultset.getString("Database"));
                    // 칼럼의 헤더 Database의 값을 가져옴
                    r_arr.add(resultset.getString("Database"));
     }
     }
     catch (SQLException ex){
     ex.printStackTrace();
     }
     finally {
                // 사용한 자원 해제 resultset , stmt , conn 순으로 해제해주세요!
     if (resultset != null) {
     try {
     resultset.close();
     } catch (SQLException sqlEx) { }
     resultset = null;
     }

     if (stmt != null) {
     try {
     stmt.close();
     } catch (SQLException sqlEx) { }
     stmt = null;
     }

     if (conn != null) {
     try {
     conn.close();
     } catch (SQLException sqlEx) { }
     conn = null;
     }
     }
            
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
        out.print(r_arr); //찾은 arr 값을 반환
    }





결과화면 - jsp 페이지





결과화면 - 이클립스













도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~




블로그 이미지

미나미나미

,

[데이터베이스] 마리아DB(MariaDB) - 이클립스 연동



 [데이터베이스] MariaDB 설치하기


 [데이터베이스] MariaDB 설치하기  다음편으로 이번에는 

이클립스와 연동하는 방법을 다뤄 보겠습니다.


이번편을 수행하기 위해서는 

MariaDB Connector/J 2.2 Series의 .jar파일이 필요합니다.




이클립스와 연동하기 위해서는 

MariaDB Connector/J 2.2 Series의 .jar파일이 필요합니다.


다운받으러 가겠습니다.


https://downloads.mariadb.org/connector-java/


안전화 버전을 선택해서 2.2.3버전을 다운받도록 하겠습니다.





 jar를 파일이 필요함으로 File Name를 클릭합니다.





 jar를 파일이 필요함으로 mariadb-java-client-2.2.3.jar를 파일을 다운 받습니다.





방법 1


jar를 이클립스에서 


WebContent - WEB-INF - lib 


드래그를 하셔서 lib 파일에 넣어주시면 됩니다.

참 쉽죠! 

솔직히 드래그하세요!!!! 




방법 2


jar를 이클립스에서 WebContent - WEB-INF - lib - 우클릭를 합니다.


Import 를 클릭합니다.






다운 받은 mariadb-java-client-2.2.3.jar의 파일을 추가합니다.




Finsh 클릭 후 추가가 될겁니다.





재실행를 해주셔야 합니다.


결과화면











도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~




블로그 이미지

미나미나미

,

[데이터베이스] 마리아DB(MariaDB) 설치하기



마이라DB(MariaDB)는 오픈 소스의 관계형 데이터베이스 관리 시스템이다.

결국, MariaDB의 선택을 하는 이유는 관계형 데이터베이스 때문이다.

데이터를 관계로서 표현하고, 행과 열의 집합으로 구성된 테이블의 묶음 형시으로 데이터를 제공한다.


결국, 다른 말로 하자면, MySQL를 대체하기위해서 사용한다.

MySQL의 경우, 현재 최종적으로 오라클에 인수되면서 개발 지침과 라이센스 문제 때문에

이점을 해결하고자 MariaDB를 사용하게된다.


또한,  이름만 다르지 제일 중요한 명령어와 사용방법 모두 MySQL과 동일하다.

하지만, 10.X 버전부터는 MySQL과 다른 차별화된 방향으로 진행될 수 있다고 한다.

아무튼, 라이센스 문제 때문에 MariaDB 설치기 시작한다.



마리아DB 다운받기 : https://downloads.mariadb.org/


이곳에서 다운 받을 겁니다.

그리고, Stable 이라고 적힌 부분을 다운 받을 겁니다.


최신 버전은 10.3 이지만, 10.2.14가 안정화버전임으로 

만약에 무언가를 도전하고 싶다 -> 최신버를 다운받으시고,

그래도, 난 안정화가 좋아요!는 안정화 버전을 다운받으세요.



 자신에게 맞는 버전을 찾아서 설치를 해주시면 됩니다.


저는 OS는 윈도우고, 비트는 64bit임으로 네모 박스 쳐저있는 것을 다운받겠습니다.






No thanks.... 버튼을 누르고, 빠르게 도망갑시다.



다운받은 파일을 실행시키고, 쭈욱 설치를 진행해줍니다.





라이센스에 대해서 동의를 해줍니다.




설치 위치를 지정해주고, 쭈욱 진행해줍니다.






비밀번호를 지정해줍니다. 

아이디는 root로 생성됩니다.

비밀번호만 만들어주시면 됩니다.


한글과 관련된 부분이 많을 것임으로 

저에 경우에는 UTF8를 캐릭터셋으로 지정해주었습니다. 

나중에 따로 지정하실 부분은 선택사항입니다.



서비스 이름을 만들어주고,

PORT번호를 지정해줍니다.

만약 3306포트로 다른 무언가 사용하신다면, 

다른 포트번호로 바꿔주셔야 됩니다.


대부분 그런한 경우가 없으니 진행주시면 됩니다.






피드백에 관한 부분임으로 체크없이 넘어가셔도 됩니다.





Install를 진행해주시면 됩니다.






설치를 끝마치시고, 윈도우 버튼를 누르고 mysql라고 치면 설치한 mariaDB를 실행 시킬 수 있습니다.




설정한 비밀번호를 치고 로그인를 하면됩니다. 



짜잔! show databases; 라고 검색하시면 데이테이베스들의 구조를 볼 수 있습니다.









도움이 되셨다면, 구독과 좋아요.... 아니아니 ...

공감 버튼 꾸욱 눌러주세요 ~~




블로그 이미지

미나미나미

,