[java]List안 Hashmap 출력 및 사용하기(List<hashmap>) , 순서 보장 hashmap


데이터를 저장하기 위해서 변수를 

모두다 선언하는 것보다는 key value로 값으로 주로 사용하는데 

거기다가 List를 사용해서 사용하는 경우가 참 많죠? 


제가 써보도록 하겠습니다.



1. import를 해줄 요소들


import java.util.ArrayList;
//hashmap를 담기 위해서 선언
import java.util.HashMap;
//실질적인 값들을 넣어줄 hashmap
import java.util.LinkedHashMap;
//추가적으로 hashmap과 linkedhashmap 비교를 해보겠습니다.
import java.util.Map.Entry;
//hashmap의 key 값을 가져와서 출력합니다.



2. ArrayList 선언 

ArrayList <HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
//ArrayList 넣어줄 계획이고 넣는 타입들은 HashMap이면서
//Hashmap은 key는 String 값 , value 값도 String 값입니다.


3. ArrayList에 HashMap 넣어주기

HashMap<String, String> map = new HashMap<String,String>();
map.put("1", "아이유");
map.put("2", "수지");
map.put("3", "제니");
//key, value로 String의 값들을 넣어줍니다.
list.add(map);

map = new HashMap<String,String>();
for(int i = 0; i < 5; i++){
    map.put(i + "Hello", "Hello "+ i);
    //for문을 돌면서 순차적으로 넣어줍니다.
}
list.add(map);

map = new LinkedHashMap<String,String>();
for(int i = 0; i < 5; i++){
    map.put(i + "Hello", "Hello "+ i);
    //for문을 돌면서 순차적으로 넣어줍니다.
}
list.add(map);


총 hashmap를 세번을 생성하여서 list안에 세번 넣어주도록 합니다.

그리고, HashMap과 LinkedHashMap의 차이점은 결과에서 볼 수 있습니다.



4. ArrayList에 HashMap 출력해보기

public static void print(ArrayList<HashMap<String, String>> list){
    //main 부분에서 선언한 list 값을 받아서 출력해보도록 합니다.
    for(int i = 0; i < list.size(); i++){
        //arraylist 사이즈 만큼 for문을 실행합니다.
        System.out.println("list 순서 " + i + "번쨰");
        for( Entry<String, String> elem : list.get(i).entrySet() ){
            // list 각각 hashmap받아서 출력합니다.
            System.out.println( String.format("키 : %s, 값 : %s", elem.getKey(), elem.getValue()) );
        }
    }
}




5. 결과화면


총 hashmap를 세번을 생성하여서 list안에 

세번 넣어주었음으로 세번 출력이 됩니다.


그리고, HashMap과 LinkedHashMap의 차이점은

출력 순서를 보시게되면 넣는 것은 for문의 순서대로 들어가지만

출력 결과에서는 순서를 보장해주지 않습니다. 

이점 참고하시길 바랍니다.!!


블로그 이미지

미나미나미

,

[데이터베이스] 데이터를 한줄로 합치기 group_concat() 함수 사용



 ■ group_concat : 


데이터 결과값들을 가끔 한줄로 묶어서 처리해야 되는 경우가 있다.

그럴때 사용하는 group_concat()함수를 사용해 보려고 한다.



table 이름은 test_stu


필드 number , name , grade , major로 이루어졌습니다.





첫번째. name 필드 모두다 한줄로 뽑기



sql 구문 :

SELECT group_concat(test_stu.name) FROM test_stu;



test_stu 테이블에서 test_stu의 name 필드의 값들을 기본 콤마(,)로 합치겠습니다.



결과 화면을 보시게 되면 name 필드의 내용 가느다란,나다,구구단,아오링,찬스,실패가 한줄로 표현되게 됩니다.




두번째. 같은 grade로 묶어서 , name을 한줄로 묶기



sql 구문 :

SELECT  test_stu.grade, group_concat(test_stu.name) 

FROM test_stu 

group by test_stu.grade;



test_stu 테이블에서 test_Stu테이블에서 grade를 값과 name을 가져옵니다. 

가져오면서 test_stu.grade의 값들로 그룹을 만들어서 name의 값을 묶도록 합니다.




결과 화면을 보시게 되면 grade의 값으로 각각 묶여서 name 필드로 출력이 됩니다.




세번째. 같은 grade로 묶어서 , name , major을 한줄로 묶기



sql 구문 :


SELECT  

test_stu.grade,  

group_concat(test_stu.major),

group_concat(test_stu.name) 

FROM test_stu 

group by test_stu.grade;





결과 화면을 grade 값들로 그룹을 만들어서 name과 major를 한 줄로 묶어줍니다.





네번째. 같은 grade로 묶어서 , number와 major 합쳐서 한줄로 묶기



sql 구문 :


SELECT 

test_stu.grade, 

group_concat(test_stu.number , test_stu.name) 

FROM test_stu 

group by test_stu.grade;







결과 화면을 grade 값들로 그룹을 만들어서 number와  major 필드를 합쳐서 출력합니다.







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

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



블로그 이미지

미나미나미

,

[javascript] 자바스크립트(javascript)로 pdf 파일 만들기



 Client쪽에서 pdf파일를 만들어야 할때가 있습니다. 

물론, 서버쪽에서도 PDF파일 만들 필요가 있습니다. 


그건 차후에 생각해 보고, 

Client 쪽에서 만들기 위해서

pdfmake를 사용해서 만들어 보겠습니다.

공식사이트 : http://pdfmake.org/index.html#/



1. pdf를 만들기 위한 js 파일 가져오기


<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<!-- jquey 파일 -->
<script src="js/pdfmake/pdfmake.min.js"></script>
<!-- pdf를 만등주기 위한 pdfmake js 파일 -->
<script src="js/pdfmake/vfs_fonts.js"></script>
<!-- 한글의 깨짐을 해결하기 위한 js 파일 -->


pdfmake.min.js 파일의 경우 최신 버전을 직접 다운 받셔도 됩니다.

다만, vfs_fonts.js파일의 경우 한글의 깨짐 해결 놓은 상황이니 이점 참고에서 사용하실 분들은 스스로 결정하시면 됩니다.



2. pdf 파일 만들어 보기 


아래의 주석 부분으로 보시면서 흐름을 파악하시면, 좋습니다.

또한, 공식 페이지에 가시면 table , column 등 여러개가 있습니다.

참고하시면 좋을 것 같습니다.


<button id="pdfmake">pdf_file 만들기</button> //pdf 파일을 만들기 위한 이벤트를 위한 버튼

<script>
$("#pdfmake").click(function () { //버튼 id pdfmake 발생시 행동할 이벤트
/* documentDefinition : pdf파일에 들어갈 내용 및 여러가지를 정의 */
var documentDefinition = {
//content : pdf의 내용을 정의
content: [
{
text: 'First paragraph'
}, // 스타일 적용 없이 그냥 출력
{
text: 'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines',
bold: true
}, // 텍스트에 bold 주기
{
text: '가나다라마바사아자타카타파하',
style: 'style_test'
}, // style 부분에 정의된 style_test 적용해보기 및 한글 꺠짐 테스트
{
style: 'tableExample',
table: {
widths: [100, '*', 200, '*'],
body: [
['width=100', 'star-sized', 'width=200', 'star-sized'],
['fixed-width cells have exactly the specified width', {
text: 'nothing interesting here',
italics: true,
color: 'gray'
}, {
text: 'nothing interesting here',
italics: true,
color: 'gray'
}, {
text: 'nothing interesting here',
italics: true,
color: 'gray'
}]
]
}
}//테이블 그리기
],
//하단의 현재페이지 / 페이지 수 넣기
footer: function (currentPage, pageCount) {
return {
margin: 10,
columns: [{
fontSize: 9,
text: [{
text: '--------------------------------------------------------------------------' +
'\n',
margin: [0, 20]
},
{
text: '' + currentPage.toString() + ' of ' +
pageCount,
}
],
alignment: 'center'
}]
};

},
//필요한 스타일 정의하기
styles: {
style_test: {
fontSize: 18,
bold: true,
margin: [0, 0, 0, 0],
alignment: 'center'
},
tableExample: {
margin: [0, 5, 0, 15]
}
},

// 페이지 크기 용지의 크기 사이즈 넣기 또는 특정 사이즈 넣기 { width: number, height: number }
pageSize: 'A4',

/* 페이지 방향 portrait : 가로 , landscape : 세로 */
pageOrientation: 'portrait',
};

var pdf_name = 'pdf파일 만들기.pdf'; // pdf 만들 파일의 이름
pdfMake.createPdf(documentDefinition).download(pdf_name);
})
</script>



3. 결과화면








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

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




블로그 이미지

미나미나미

,

DAO : Data Access Object 란? 무엇을 달라는 다오다오.....



최대한 이해하고, 공부하는 분야도 보니 틀리 수도 있습니다.

틀린점이 있다면, 알려주시면 감사합니다.



DAO 결론 : Database의 수행하는 부분을 전적으로 담당한다고 생각하면 됩니다.

커넥션을 하나만 두고(싱글톤 패턴), 여러 사용자가 DAO의 interface를 사용하여 필요한 자료에 접근하게 만드는 것입니다. 


 예를 들어, 뷰에서 사용자가 데이터를 요청할 때, 서블렛(또는 서버)에서 DB에 접근을 하는 경우, DB의 접근을 위해서 커넥션 객체를 생성하게 됩니다. 만약, 다수의 서블렛에서 동시에 컨넥션 객체를 생성한다면, DB 접근으로 인한 컨넥션 객체를 생성하는데, 메모리와 시간을 상당히 사용됩니다. 


 이러한 점을 탈피하기 위해서, 하나의 객체를 생성하여 그 객체만이 계속적으로 DB의 접근하도록 하는 것입니다. 그 객체가 바로 DAO 입니다.


DAO 패턴은 표준 J2EE 디자인 패턴 중 하나입니다. 이 패턴을 사용하여 하위 수주늬 데이터 액세스 작업과 상위 수준의 비즈니스 논리와 분리합니다.

DAO 클래스에는 특정 데이터 소스의 데이터에 액세스하기위한 논리가 포함되어 있습니다. 



참고 페이지 : Advanced DAO programming








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

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




블로그 이미지

미나미나미

,

[데이터베이스] mybatis 에러 Attribute "resource" must be declared for element type "mapper".






 mybatis에서 설정 작성 중 일때, resource에서,


Attribute "resource" must be declared for element type "mapper".


라는 에러가 발생하면 


<!DOCTYPE의 선언 문을 아래 수정 후로 고쳐주세요!






수정 전


<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


수정 후


<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">







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

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




블로그 이미지

미나미나미

,

[데이터베이스] mybatis 사용하기 ( JSP,AJAX. Sevlet)


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

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

[데이터베이스] 마리아DB(MariaDB) - JSP - ajax 연동 예제 의 다음 이야기로 진행하시는데 

어려움 또는 설정 파일을 필요하신 분들은 앞에 부분들부터 천천히 읽고 오시면 좋을거 같습니다.




마리아DB를 편리하게 쓰고, 좀더 DB의 오버헤드를 줄이기 위해서

Mybatis를 사용하는 법을 진행하겠습니다.


Mybatis를 쓰기 위해서는 Jar의 파일이 필요합니다.

아래의 GITHUB의 가시면 mybaits의 zip 파일을 얻을 수 있습니다.

파일 중 mybatis-3.X.X.jar를

WebContent , WEB-INF , lib 아래 두시면 됩니다. 


다운 받으러 가기 : https://github.com/mybatis/mybatis-3/releases





마리아DB와 Mybatis를 사용하기 위해서는 
아래의 주황색 박스의 부분의 코드들이 필요하다.





controller : JSP에서 버튼 이벤트로 Ajax 요청을 받아서, package test.DataDao에서 

데이터를 Object로 돌려줍니다.


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //doGet(request, response);
    DataDao dao = new DataDao();
    //test.DataDao의 DataDao.java를 통해서 sqlSessionFa
    List<Data> list= dao.getList();
    for(int i = 0; i < list.size(); i++){
        System.out.println(list.get(i).getName());
    }
    
}




test.DataDao:  controller 의해 요청된 정보에 대해서 

test.mybatis의 SqlSessionFactoryService.java 파일에 

생성된 sqlSessionFactory의 인스턴스 통해서

sqlSession를 생성 후 DataMpper.xml에서 Mapper를 통해서 

원하는 데이터를 가져옵니다. 
여기서 가져올 때, test.DataVO.Data.java를 통해서 Data를 object화 시켜가져옵니다.


package test.DataDao;

import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import test.mybatis.SqlSessionFactoryService;
import test.DataVo.*;

public class DataDao {
    private SqlSessionFactory sqlSessionFactory;
    //sqlSessionFactory는 sqlSession를 생성하기 위해 사용
    /*
        한번 만든뒤 SqlSessionFactory는 애플리케이션을 실행하는 동안 존재해야만 한다.
        그래서 삭제하거나 재생성할 필요가 없다.
        애플리케이션이 실행되는 동안 여러 차례 SqlSessionFactory 를
        다시 빌드하지 않는 것이 가장 좋은 형태이다.
         가장 간단한 방법은 싱글턴 패턴이나 static 싱글턴 패턴을 사용하는 것이다.
     */
    public DataDao(){
        sqlSessionFactory = SqlSessionFactoryService.getSqlSessionFactory();
    }
    public List<Data> getList() { // DataDao의 의해서 MariaDB에서 값을 받아온다. list

        SqlSession session = null;

        try {
            session = sqlSessionFactory.openSession();
            //세션을 생성하여 매핑구문을 실행하거나
            //커밋 또는 롤백을 하기 위해 세션을 사용
            return session.selectList("getlist");
            //DataMapper.xml 매핑된 Sql 구문을 실행 후 찾은 데이터를
            //controller에 데이터를 보내준다.
        } finally {
            if (session != null)
                session.close();
                //세션 더이상 필요하지 않은 상태가 되면 세션을 닫는다.
        }
    }


}




test.DataVo:  DB에서 읽어올 데이터를 Object화 시켜주기 위하여 생성된 변수들

getter/setter를 사용하며, 테이블의 구조의 헤더의 선언된 정보와 같다.


package test.DataVo;

public class Data {
    /*
        MariaDB에서 읽어올 테이블의 헤더와 동일하다.
        읽어 올 테이블의 구조는
        번호 , 이름 , 학년
        => number , name. grade
        이렇게 구성되어있다.
    */
    
    private String name;
    private int grade;
    private int number;
        
    public Data() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Data(String name, int grade , int number) {
        super();
        this.name = name;
        this.grade = grade;
        this.number = number;
    }   
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getGrade() {
        return grade;
    }
    public void setGrade(int grade) {
        this.grade = grade;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    
}




test.mybatis.DataMapper.xml:  DataDao.java 에서의 수행할 함수 기능에 대한 정보를 가지고 있다.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test.mybatis.DataMapper">
<!--패키지 경로를 포함한 전체 이름을 가진 구문을 구분하기 위해 필수로 사용한다.-->
    <select id="getlist" resultType="data">
        <!--함수 호출명 getlist 결과 DataVo의 Data.java 형식-->
        select * from test_stu order by number desc
    </select>
</mapper>



test.mybatis.mybatis-config.xml:  접속한 DB의 정보 및 수행할 정보도 가지고 있다.


<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -->
<!-- Attribute "resource" must be declared for element type "mapper". -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <typeAliases>
        <typeAlias type="test.DataVo.Data" alias="data" />
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="org.mariadb.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/가져올DB" />
                <property name="username" value="아이디" />
                <property name="password" value="비밀번호" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="test/mybatis/DataMapper.xml" />
    </mappers>

</configuration>



test.mybatis.sqlSessionFactoryService.java


package test.mybatis;

import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryService {

    private static SqlSessionFactory sqlSessionFactory;
    static{
        try{
String resource = "test/mybatis/mybatis-config.xml";
//mybatis를 통해서 연결할 DB, id , pass 정보를 가지고 있다.
InputStream is = Resources.getResourceAsStream(resource);

//mybatis-config.xml를 통해서 내가 연결할 mariadb 연결 정보를 읽어 온다.
sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
/*
이 클래스는 인스턴스회되어 사용되고 던져질 수 있다.
SqlSessionFactory 를 생성한 후 유지할 필요는 없다.
그러므로 SqlSessionFactoryBuilder 인스턴스의
가장 좋은 스코프는 메소드 스코프(예를들면 메소드 지역변수)이다.
여러개의 SqlSessionFactory 인스턴스를 빌드하기 위해 SqlSessionFactoryBuilder를
재사용할 수도 있지만 유지하지 않는 것이 가장 좋다.
*/
// 가져온 정보를 통해서
        }catch(IOException ie){
            System.out.println(ie.getMessage());
        }
    }

    public static SqlSessionFactory getSqlSessionFactory() {
//test.DataDao의 DataDao.java 파일의 의해서 요청된
//sqlSessionFactory -> sqlSession를 만들기위해서 sqlSessionFactory를 reutrn한다.
        return sqlSessionFactory;
    }   
}




JSP 화면


<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>

<title>테스트 페이지</title>
</head>

<body>
<p>테스트</p>
<button id="jsonSend" type="button"> maria 값 가져오기 실행</button>
<script>
$('#jsonSend').click(function () {
jsonSend();
});

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

</html>




결과화면










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

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


블로그 이미지

미나미나미

,

[데이터베이스] 몽고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 아래에 드래그해서 넣어주시면 됩니다.


참 쉽죠!









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

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




블로그 이미지

미나미나미

,