7. 카페메뉴 백엔드 CRUD
2024. 1. 7. 15:54ㆍ언어/java
728x90
백엔드 내용 설명
DataController
조회 , 등록 , 수정 , 삭제 , 검색을 위한 컨트롤 코드
결과적으로 연결 시키거나 api 관련 코드만 적음
@Controller
public class DataController {
@Autowired
private DataService dataService;
/** ******************** 카페 메뉴 관리 (시작) ******************** **/
/**
* 데이터 조회
*/
@RequestMapping(value = "/dataSelectList.json", method = RequestMethod.POST)
public ModelAndView dataSelectList(@RequestBody HashMap<String, Object> params) throws Exception {
System.out.println("dataSelectList Controller");
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("result", dataService.dataSelectList(params));
return mav;
}
/**
* 데이터 등록
*/
@RequestMapping(value = "/dataInsert.json", method = RequestMethod.POST)
public ModelAndView dataInsert(@RequestBody HashMap<String, Object> params) throws Exception {
System.out.println("dataInsert Controller" + params);
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("result", dataService.dataInsert(params));
return mav;
}
/**
* 데이터 수정
*/
@RequestMapping(value = "/dataUpdate.json", method = RequestMethod.POST)
public ModelAndView dataUpdate(@RequestBody HashMap<String, Object> params) throws Exception {
System.out.println("dataUpdate Controller" + params);
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("result", dataService.dataUpdate(params));
return mav;
}
/**
* 데이터 삭제
*/
@RequestMapping(value = "/dataDelete.json", method = RequestMethod.POST)
public ModelAndView dataDelete(@RequestBody HashMap<String, Object> params) throws Exception {
System.out.println("dataDelete Controller" + params);
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("result", dataService.dataDelete(params));
return mav;
}
/**
* 데이터 검색
*/
@RequestMapping(value = "/dataSearch.json", method = RequestMethod.POST)
public ModelAndView dataSearch(@RequestBody HashMap<String, Object> params) throws Exception {
System.out.println("dataSearch Controller" + params);
ModelAndView mav = new ModelAndView("jsonView");
List<HashMap<String, Object>> results = dataService.dataSearch(params);
mav.addObject("result", results);
return mav;
}
/** ******************** 카페 메뉴 관리 (끝) ******************** **/
}
DataService
서비스 계산 해야되는 부분 정의
@Service
public class DataService {
@Autowired
private DataDAO dataDAO;
/** ******************** 카페 메뉴 관리 (시작) ******************** **/
/**
* 데이터 조회
*/
public List<HashMap<String, Object>> dataSelectList (HashMap<String, Object> params) throws Exception {
return dataDAO.dataSelectList(params);
}
/**
* 데이터 등록
*/
public int dataInsert(HashMap<String, Object> params) throws Exception {
int result = dataDAO.dataInsert(params);
System.out.println("dataInsert result: " + result);
return result;
}
/**
* 데이터 수정
*/
public int dataUpdate(HashMap<String, Object> params) throws Exception {
int result = dataDAO.dataUpdate(params);
System.out.println("dataUpdate result: " + result);
return result;
}
/**
* 데이터 삭제
*/
public int dataDelete(HashMap<String, Object> params) throws Exception {
int result = dataDAO.dataDelete(params);
System.out.println("dataDelete result: " + result);
return result;
}
/**
* 데이터 검색
*/
public List<HashMap<String, Object>> dataSearch (HashMap<String, Object> params) throws Exception {
return dataDAO.dataSearch(params);
}
/** ******************** 카페 메뉴 관리 (끝) ******************** **/
}
DataDAO
직접적으로 데이터베이스랑 통신하는 코드
package kr.co.takensoft.projectSettingManual.data.dao;
import org.apache.ibatis.annotations.Mapper;
import java.util.HashMap;
import java.util.List;
@Mapper
public interface DataDAO {
/** ******************** 카페 메뉴 관리 (시작) ******************** **/
/**
* 데이터 조회
*/
public List<HashMap<String, Object>> dataSelectList (HashMap<String, Object> params) throws Exception;
/**
* 데이터 등록
*/
public int dataInsert(HashMap<String, Object> params) throws Exception;
/**
* 데이터 수정
*/
public int dataUpdate(HashMap<String, Object> params) throws Exception;
/**
* 데이터 삭제
*/
public int dataDelete(HashMap<String, Object> params) throws Exception;
/**
* 데이터 검색
*/
public List<HashMap<String, Object>> dataSearch(HashMap<String, Object> params) throws Exception;
/** ******************** 카페 메뉴 관리 (끝) ******************** **/
}
data-SQL.xml
이 페이지는 특정 상품(카페 메뉴)의
데이터를 데이터베이스에서 조회, 등록, 수정, 삭제, 검색하는 기능을
SQL 쿼리를 통해 제공하는 MyBatis 매퍼 파일입니다.
<mapper namespace="kr.co.takensoft.projectSettingManual.data.dao.DataDAO">
<!-- ******************** 카페 메뉴 관리 (시작) ******************** -->
<!--
내용 : 데이터 조회
-->
<select id="dataSelectList" parameterType="HashMap" resultType="HashMap">
SELECT
product_index
, product_name
, product_category
, product_price
, product_writer
, product_explan
, product_date
FROM
product
ORDER BY
product_index DESC
</select>
<!--
내용 : 데이터 등록
-->
<insert id="dataInsert" parameterType="HashMap">
INSERT INTO product
(
product_name
, product_category
, product_price
, product_writer
, product_explan
, product_date
)
VALUES
(
#{product_name}
, #{product_category}
, #{product_price}
, #{product_writer}
, #{product_explan}
, CAST(#{product_date} AS DATE)
)
</insert>
<!--
내용 : 데이터 수정
-->
<update id="dataUpdate" parameterType="HashMap">
UPDATE product
SET
product_index = #{product_index}
, product_name = #{product_name}
, product_category = #{product_category}
, product_price = #{product_price}
, product_writer = #{product_writer}
, product_explan = #{product_explan}
, product_date = CAST(#{product_date} AS DATE)
WHERE
product_index = #{product_index}
</update>
<!--
내용 : 데이터 삭제
-->
<delete id="dataDelete" parameterType="HashMap">
DELETE
FROM
product
WHERE
product_index = #{product_index}
</delete>
<!--
내용 : 데이터 검색
-->
<select id="dataSearch" parameterType="HashMap" resultType="HashMap">
SELECT
product_index,
product_name,
product_category,
product_price,
product_writer,
product_explan,
product_date
FROM
product
WHERE
${option} LIKE CONCAT('%', #{keyword}, '%')
ORDER BY
product_index DESC
</select>
<!-- ******************** 카페 메뉴 관리 (끝) ******************** -->
</mapper>
SQL문
-- create test SCHEMA(mariaDB)
CREATE SCHEMA test DEFAULT CHARACTER SET utf8mb4;
-- use test SCHEMA(mariaDB)
use test;
-- create product table(mariaDB)
CREATE TABLE product
(
product_index INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(50),
product_category VARCHAR(50),
product_price INT,
product_explan TEXT,
product_writer VARCHAR(50),
product_date DATE
) DEFAULT CHARACTER SET utf8mb4;
-- create product table(mariaDB)
CREATE TABLE cctv
(
cctv_index INT PRIMARY KEY AUTO_INCREMENT,
cctv_name VARCHAR(50),
cctv_Latitude INT,
cctv_Hardness INT,
cctv_category VARCHAR(50)
) DEFAULT CHARACTER SET utf8mb4;
여기까지가 데이터베이스와 연동하는 dao와 친구들이고
밑에가 내가 만들어 본 것이다.
이화면을 기준으로 만들어 볼 생각이다
먼저 디비에 저장시킬 SQL문 수정
CREATE TABLE cctv
(
cctv_index INT PRIMARY KEY AUTO_INCREMENT,
cctv_name VARCHAR(50),
cctv_Latitude INT,
cctv_Hardness INT,
cctv_category VARCHAR(50)
) DEFAULT CHARACTER SET utf8mb4;
두번째로
백엔드에서 MyBatis 파일을 수정
장비를 조회 해야되기 때문에 나는 이름 ,위도,경도 ,카테고리를 만들어줬다.
<select id="cctvSelectList" parameterType="HashMap" resultType="HashMap">
SELECT
cctv_index
, cctv_name
, cctv_Latitude
, cctv_Hardness
, cctv_category
FROM
cctv
ORDER BY
cctv_index DESC
</select>
그리고 프론트엔드에서 수정을 하여
완성 시켰다.
728x90
'언어 > java' 카테고리의 다른 글
카카오 지도 api / 쿼리문 (0) | 2024.01.12 |
---|---|
8. CRUD 연동 연습 (1) | 2024.01.12 |
6. 카페메뉴 프론트엔드(2) (0) | 2024.01.07 |
5. 카페메뉴 프론트엔드(1) (1) | 2024.01.06 |
4. 카페 메뉴 관리 전체 흐름 (3) | 2024.01.02 |