JAVA #7 - DB연동

김형우·2022년 2월 23일
0

JAVA

목록 보기
7/12

외부 라이브러리 다운로드
1. 검색

  1. 선택

  2. 적용

  • pom.xml에서 dependency 태그에 넣음

1. MemberDB.java

1. 접속하기 = client

  • MongoClient client = MongoClients.create(url);
    : MongoClients.create(url);의 형태를 보면 static으로 정의되어 여러개의 객체생성이 불가능 함을 알 수있다.

2. DB연결 = getDatabase

  • 접속한 client에서 db를 가져온다.
  • MongoDatabase db = client.getDatabase("db201");
    : 순차적으로 진행한다.

3. 컬렉션 조회 = list

  • 연결 된 db에 있는 컬렉션(colls)을 조회한다
  • MongoIterable<String> colls = db.listCollectionNames();

4. 컬렉션 목록 출력

  • App.java에서 출력 할수있게 System.out.println(tmp); 명령어를 넣어둔다.

5. 컬렉션 선택 = collection

  • 3, 4 과정은 생략하고, db에서 member2 컬렉션을 가져온다(db.getCollection("member2");).
  • 이렇게 가져오면 외부에서 사용이 안된다.
  • 때문에 외부에 collection 변수를 잡아서 결과값을 외부에 던진다
    5-1. 변수생성
    : private MongoCollection<Document> collection = null;
    5-2 . 변수로 결과값 던지기
    : this.collection = db.getCollection("member2");
public class MemberDB {

    // 컬렉션 변수 설정
    private MongoCollection<Document> collection = null;

    // 1. 생성자
    // DB 연결시킴
    public MemberDB() {
        String url = "mongodb://id201:pw201@1.234.5.158:37017/db201";

        // 1. 접속하기 static으로 되어있어서 여러개 생성 불가
        MongoClient client = MongoClients.create(url);

        // 2. DB 연결
        MongoDatabase db = client.getDatabase("db201");

        // // 3. 컬렉션 조회 = list
        // MongoIterable<String> colls = db.listCollectionNames();

        // // 4. 컬렉션 목록 출력
        // for (String tmp : colls) {
        // System.out.println(tmp);
        // }

        // 3. 컬렉션선택 (member2)
        // MongoCollection<Document> collection = db.getCollection("member2");
        // 이렇게 불러온 컬렉션을 사용하려고 위의 과정을 거친것임
        // 이대로 두면 외부에서는 collection을 사용할수 없기때문에
        // 외부에 변수를 두고 그 안에 결과값(db.getCollection("member2");)을 넣는다.
        this.collection = db.getCollection("member2");

    }
    // 메소드
}

6. 메소드

6-1. insertData(Member member)

  • Member.java에 member라는 변수명으로 데이터를 던짐
  • 타입 Document인 변수 doc에 새로운 Document를 만든다고 선언
    : 여기서 Documentimport org.bson.Document;bson 것을 쓴다.
  • 아이디, 이름, 권한, 나이, 등록일을 docappend한다.
    : Member.java 클래스에 담긴것을 가지고 올 것이기 때문에 member.get을 사용한다.
  • 하나의 doc로 만든 데이터들을 Insert한다.
    : InsertOneResult result = this.collection.insertOne(doc);
// 메소드 많이 만들 예정
public void insertData(Member member) {
	Document doc = new Document();
    doc.append("_id", member.getId());
    doc.append("name", member.getName());
    doc.append("role", member.getRole());
    doc.append("age", member.getAge());
    doc.append("regdate", member.getRegdate());

	InsertOneResult result = this.collection.insertOne(doc);
    System.out.println(result);

}

App.java

public class App {
    public static void main(String[] args) {

        // MemberDB obj = new MemberDB(); // 리스트 뽑을때 사용함
        MemberDB obj = new MemberDB();

        Member member = new Member();
        member.setId("b");
        member.setName("이름b");
        member.setRole("CUSTOMER");
        member.setAge(34);
        member.setRegdate("2022-02-23");
        obj.insertData(member);

    }
}
profile
The best

0개의 댓글