본문 바로가기
서버/SPRING

[Boostcourse] 이클립스와 MongoDB Template 사용 및 JDBC3 실습

by HDobby 2022. 9. 30.

https://www.boostcourse.org/web326/lecture/258490 

 

웹 백엔드

부스트코스 무료 강의

www.boostcourse.org

https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb-getting-started

 

Spring Data MongoDB - Reference Documentation

abs, acos, acosh, add (* via plus), asin, asin, atan, atan2, atanh, ceil, cos, cosh, derivative, divide, exp, floor, integral, ln, log, log10, mod, multiply, pow, round, sqrt, subtract (* via minus), sin, sinh, tan, tanh, trunc

docs.spring.io

MongoTemplate을 사용하기 위해 pom.xml에

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>3.4.3</version>
  </dependency>
  <dependency>
        <groupId>org.mongodb</groupId>
	    <artifactId>mongodb-driver-sync</artifactId>
	    <version>4.7.1</version>
	</dependency>

 

을 추가해 줍니다.

 

Collection과 Role.java에서의 roleid가 변수명이 다름으로 통일시켜주기 위해 Role.java를 수정해줍니다.

Role.java

더보기
package kr.or.connect.jdbcexam.dto;

public class Role {
	private Integer role_id;
	private String description;
	
	public Role() {
		
	}
	
	public Role(Integer role_id, String description) {
		super();
		this.role_id = role_id;
		this.description = description;
	}
	
	public Integer getRoleId() {
		return role_id;
	}
	public void setRoleId(Integer role_id) {
		this.role_id = role_id;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	@Override
	public String toString() {
		return "Role [role_id=" + role_id + ", description=" + description + "]";
	}
	
}

 

 

getRoles함수

더보기
public List<Role> getRoles(){
		List<Role> list = new ArrayList<>();
		
		try{
			SimpleMongoClientDatabaseFactory simpleMongoDbFactory = new SimpleMongoClientDatabaseFactory(uri+"/정하신 db명");//uri경로 뒤에 접속할 데이터 베이스명을 적어줘야합니다.
		    	MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory);
		    
			Query query = new Query();
			query.with(Sort.by("role_id").descending());//role_id를 기준으로 desc정렬
			
			list = mongoTemplate.find(query,Role.class,"정하신 Collection명");
			
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		System.out.println(list);
		return list;
	}

 

 

SELECT

더보기
package kr.or.connect.jdbcexam;

import java.util.List;

import org.bson.BsonValue;

import kr.or.connect.jdbcexam.dao.RoleDao;
import kr.or.connect.jdbcexam.dto.Role;

public class JDBCExam3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		RoleDao dao = new RoleDao();
		List<Role> list = dao.getRoles();
		
		for(Role role : list) {
			System.out.println(role);
		}
	}

}

 

 

 

JDBCExam2에서 ID를 수정하여 500번을 추가해줍니다.

더보기
package kr.or.connect.jdbcexam;

import org.bson.BsonValue;

import kr.or.connect.jdbcexam.dao.RoleDao;
import kr.or.connect.jdbcexam.dto.Role;

public class JDBCExam2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int roleId = 500;
		String description = "TEST";
		
		Role role = new Role(roleId, description);
		
		RoleDao dao = new RoleDao();
		BsonValue insertId = dao.addRole(role);
		
		System.out.println(insertId);
	}

}

DELETE

더보기
public int deleteRole(Integer role_id) {
		try{
			SimpleMongoClientDatabaseFactory simpleMongoDbFactory = new SimpleMongoClientDatabaseFactory(uri+"/JDBC_EXAM");
		    MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory);
		    
		    Criteria criteria = new Criteria("role_id");
		    criteria.is(role_id);
			Query query = new Query(criteria);
			
			mongoTemplate.remove(query,"role");
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		return role_id;
	}

Delete 예제

더보기
package kr.or.connect.jdbcexam;

import kr.or.connect.jdbcexam.dao.RoleDao;


public class JDBCExam4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int roleId = 500;
		
		RoleDao dao = new RoleDao();
		int deleteId = dao.deleteRole(roleId);
		
		System.out.println(deleteId);
	}

}

 

DELETE 실행 전

DELETE 실행 후

UPDATE

더보기
public int updateRole(Role role) {
		try{
			SimpleMongoClientDatabaseFactory simpleMongoDbFactory = new SimpleMongoClientDatabaseFactory(uri+"/JDBC_EXAM");
		    MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory);
		    
		    Criteria criteria = new Criteria("role_id");
		    criteria.is(role.getRoleId());
			Query query = new Query(criteria);
			Update update = new Update();
			update.set("description", role.getDescription());
			
			mongoTemplate.updateFirst(query,update,"role");
			//전부 바꿀때 mongoTemplate.updateMulti(query,update,"role");
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		return role.getRoleId();
	}

UPDATE 실행 예제

더보기
package kr.or.connect.jdbcexam;

import kr.or.connect.jdbcexam.dao.RoleDao;
import kr.or.connect.jdbcexam.dto.Role;


public class JDBCExam5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int roleId = 500;
		String description = "CEO";
		
		Role role = new Role(roleId,description);
			
		RoleDao dao = new RoleDao();
		int updateId = dao.updateRole(role);
		
		System.out.println(updateId);
	}

}

 

 

UPDATE 실행 전

UPDATE 실행 후

728x90

댓글