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