Mybatis CRUD2

£€€.T.$·2023년 9월 4일

일반적인 데이터 입력

Controller.java

@PostMapping("/api/v1/calendar/testinputdate")
public ResponseEntity<?> inputScheduleData(@RequestBody  Map<String, Object> bodyParam) {
    dataService.inputScheduleData(bodyParam);
	return ResponseEntity.ok(bodyParam);
}

데이터가 들어오는 방식은 key value방식으로 들어오기 때문에 Map방식을 이용하여 받아준다 해당 이름은 bodyParam으로 설정한다.


Service.java

@Service("com.example.demo.service.DataService")
public class DataService {
	@Autowired
	private DataDAO dataDAO;
	
	public int inputScheduleData(Map<String, Object> param){
		int ret = dataDAO.inputScheduleData(param);
		return ret;
	}
}

input값은 int로 리턴하여준다


DAO.java

@Repository("com.example.demo.dao.DataDAO")
@Mapper
public interface DataDAO {    
    //xml방식 
    public int inputScheduleData(Map<String,Object> param);
   
}

인터페이스로 선언한 DAO 에 xml과 연결할 CRUD를 작성한다 들어가는 값은 컨트롤러에서 받아온 param이다.


.xml

<mapper namespace="com.example.demo.dao.DataDAO">
	<insert id="inputScheduleData" parameterType="map">	
	  INSERT INTO scheduleinfo(user_id, todo_memo, todo_date)
	  VALUES(#{user_id}, #{todo_memo}, #{todo_date})	
	</insert>
</mapper>

namespace를 이용하여 맵퍼를 연결하고 DAO에 선언한 insert id를 기입하여준다. VO없이 바로 컬럼값을 연결하여 넣어 줄 수 있다.


LIST 값을 넣는 방법

Controller.java

@GetMapping("/api/v1/calendar/testselect")
public  ResponseEntity<?> selectScheduleData(){
	return ResponseEntity.ok(dataService.selectScheduleData());    	
    }

Service.java

import com.example.demo.dao.DataDAO;
import com.mongodb.DBObject;
@Service("com.example.demo.service.DataService")
public class DataService {
	@Autowired
	private DataDAO dataDAO;
	
	public List<DBObject> selectScheduleData(){
		return dataDAO.selectScheduleData();
	}

mongodb에서 쓰이는 DBObject를 선언하여 리스트 양식을 만든다.


DAO.java

import com.mongodb.DBObject;

@Repository("com.example.demo.dao.DataDAO")
@Mapper
public interface DataDAO {
 	public List<DBObject> selectScheduleData();
    }

마찬가지로 동일한 양식의 List를 선언한다.


.xml

<mapper namespace="com.example.demo.dao.DataDAO">
<resultMap id="pageMap" type="com.mongodb.BasicDBObject">
	<result property="user_id" column="user_id" />
	<result property="todo_memo" column="todo_memo" jdbcType="CLOB" javaType="java.lang.String"/>		
	<result property="todo_date" column="todo_date" />
</resultMap>
.
.
.

mapper 아래에 위에 선언한 DBObject를 property인 자바타입과 column인 DB타입을 맞춰준다. CLOB같은 특수한 데이터형식은 javaType에서 바꿔준다.

profile
Be {Nice} Be {Kind}

0개의 댓글