본문 바로가기
서버/SPRING

[Boostcourse] 이클립스와 MongoDB 연결 방법 및 JDBC1 실습

by HDobby 2022. 9. 28.

#강의 에서는 mysql을 사용하지만 저는 MongoDB를 사용하여 진행합니다.

https://www.boostcourse.org/web326/joinLectures/28762

 

웹 백엔드

부스트코스 무료 강의

www.boostcourse.org

기본 몽고 DB 연결 자세한 정보 https://www.mongodb.com/docs/drivers/java/sync/current/quick-start/

 

Quick Start — Java Sync

If you encounter an error connecting to your MongoDB instance or cluster that resembles the following while running your application, you may need to update your JDK to the latest patch release: javax.net.ssl.SSLHandshakeException: extension (5) should not

www.mongodb.com

pom.xml의 Dependency로 가서 이 부분을 추가 해줍니다.

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>4.7.1</version>
    </dependency>
</dependencies>

만약 mongodb에 role 데이터를 추가하지 않았다면 생성해줍시다

URI는 기본 설정인 localhost:27017로 실행했다고 가정하겠습니다.

 

데이터 추가

더보기

좌측의 Databases를 누르고 화면 상단의 Create database를 눌러줍니다

Database Name은 자유롭게 하시고 Collection Name을 role로 생성해줍니다

role을 누르시고 화면 상단의 ADD_DATA -> INSERT DOCUMENT를 클릭하여 데이터를 생성해줍니다.

화면 하단의 INSERT 클릭

후 우측의 연필 모양을 누르고 좌측의 +버튼이 활성화 되면 데이터를 추가해줍니다.

role_id : 100 Int32

description : "Developer" String

데이터 가져오기

 

RoleDao 에서 연결하시는 부분과 쿼리부분을 변경해 주시면 됩니다.

	String uri = "mongodb://localhost:27017"; //mysql 에서의 myurl과 같은 역할입니다.
	BasicDBObject query = new BasicDBObject(); // 쿼리문을 사용하기 위한 String sql과 동일한 역할입니다.

MongoDB와의 연결은

try (MongoClient mongoClient = MongoClients.create(uri)){
			MongoDatabase database = mongoClient.getDatabase("만든 DB명"); //정하신 DB명
			MongoCollection<Document> collection = database.getCollection("만든 collection 이름");// 정하신 collection 명
			
			query.put("role_id", roleId); //기본적으로 put은 eq 동일한 걸 찾아줍니다.
			doc = collection.find(query).first();
		}catch (Exception e) {
			e.printStackTrace();
		}

후에 role과 연결해주면 됩니다.

role = new Role(roleId,doc.getString("description")); //Document 타입에서 특정 value값을 가져오는 방법
return role;

RoleDao 코드

더보기
package kr.or.connect.jdbcexam.dao;
import kr.or.connect.jdbcexam.dto.Role;

import org.bson.Document;

import com.mongodb.BasicDBObject;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class RoleDao {
	String uri = "mongodb://localhost:27017"; //mysql 에서의 myurl과 같은 역할입니다.
	BasicDBObject query = new BasicDBObject(); // 쿼리문을 사용하기 위한 String sql과 동일한 역할입니다.
	
	public Role getRole(Integer roleId) {
		Role role = null;
		Document doc = null;
		
		try (MongoClient mongoClient = MongoClients.create(uri)){
			MongoDatabase database = mongoClient.getDatabase("JDBC_EXAM"); //정하신 DB명
			MongoCollection<Document> collection = database.getCollection("role"); // 정하신 collection 명
			
			query.put("role_id", roleId); //기본적으로 put은 eq 동일한 걸 찾아줍니다.
			doc = collection.find(query).first();
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		System.out.println(doc);
		
		role = new Role(roleId,doc.getString("description")); //Document 타입에서 특정 value값을 가져오는 방법
		return role;
	}
}
728x90

댓글