본문 바로가기

Spring

Spring의 느낌을 느껴보자

반응형

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration>
    
    <typeAliases>
        <typeAlias alias="boardDto" type="com.ssafy.boardspring.dto.BoardDto"/>
        <typeAlias alias="memberDto" type="com.ssafy.boardspring.dto.MemberDto"/>
        <typeAlias alias="memoDto" type="com.ssafy.boardspring.dto.MemoDto"/>
    </typeAliases>
    
</configuration>

이곳은 mybatis를 사용할때 typeAliases를 통해서 별칭을 지정할 수 있다.

com.ssafy.boardspring.dto.BaordDto 를 boardDto로 별칭해줌으로서 패키지에 class 파일을 접근 할수 있다.

 

 

mappers/*.xml ( myBatis DB 접근)

<?xml version="1.0" encoding="UTF-8"?>
<!-- mappers/hrm.xml -->
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
                        
<mapper namespace="s_emp"> <!-- mybatis는 namespace필수!! -->


    <select id="findAllEmployees" resultType="Employee" >
		select id, name, mailid, start_date, manager_id, title, dept_id    ,                      
		ifnull(salary,0.0) salary, ifnull(commission_pct,0.0) commission_pct                                        
		from s_emp order by id       
     </select>
     
     
	  <select id="findEmployeeById" resultType="Employee">
        select id, name, mailid, start_date, manager_id, title, dept_id    ,                      
		ifnull(salary,0.0) salary, ifnull(commission_pct,0.0) commission_pct                                        
		from s_emp where id= #{id}  
	 </select>


     <insert id="addEmployee">
             insert into s_emp (id, name, mailid, manager_id,title )
                        values (#{id}, #{name}, #{mailid}, #{manager_id},#{title}) 
         <!-- 
            INSERT INTO s_emp	     
			(id, name, mailid, start_date, manager_id, title, dept_id, SALARY, COMMISSION_PCT)
			VALUES(
            #{id},#{name},#{mailid},#{start_date},
			<if test="manager_id != '' and manager_id != null and  manager_id != 0 " >
				#{manager_id}
			</if>       		
			<if test="manager_id == '' or manager_id == null or manager_id == 0 " >
				null
			</if>  
            ,#{title},#{dept_id},#{salary},
			<if test="commission_pct != '' and commission_pct != null and  commission_pct != 0 " >
				#{commission_pct}
			</if>       		
			<if test="commission_pct == '' or commission_pct == null or commission_pct == 0 " >
				null
			</if>  
	        )
         
          -->                      
    </insert>
    <update id="updateEmployee" ><!-- parameterType="Employee" -->
    	UPDATE s_emp   SET                      
	        name=#{name}, mailid=#{mailid}  ,  start_date= #{start_date},         
	        manager_id=#{manager_id},    title=#{title},                                  
	        dept_id=#{dept_id},salary=#{salary}  
	        <if test="commission_pct != '' and commission_pct != null and  commission_pct != 0 " >
				,commission_pct=#{commission_pct} 
			</if>
	          <if test="commission_pct == '' or commission_pct == null or commission_pct == 0 " >
				,commission_pct=null 
			</if>  
	        WHERE id=#{id}                
    </update>
    
    <delete id="deleteEmployee">
        DELETE FROM s_emp WHERE id=#{id}    
    </delete>



    

</mapper>



 

<mapper namespace ="s_emp"> 

java에서 mybatis를 접근할때 "s_emp.id" 이런식으로 접근한다. 따라서 namespace는 필수다.

 

id : 접근 방법

 

resultType : 반환 파라미터 <- mybatis-config 별칭으로 등록한 class를 파라미터로 사용가능

parameterType : 넘겨준 파라미터타입의 형태

 

    <select id="login" parameterType="memberDto" resultType="memberDto">
    	select userid, username, email, address
    	from ssafy_member
    	where userid = #{userid} and userpwd = #{userpwd}
    </select>

 

 

태그들 알아보자.

 

@Controller  : 현재 파일이 컨트롤러임을 나타낸다.

@RequestMapping("/board") 밑의컨트롤러를 접글할때 기본적으로 /board/ 를 붙인다.

@Repository : Dao가 들어있는 곳이라고 명시

@Autowired :  싱글토패턴으로 객체를 반환받는다.

@Service : 서비스 파일임을 명시

 

@GetMapping : Get으로 받을때 사용

@PostMapping : Post로 받을때사용 파라미터로 받을수 있다.

 

//	글작성
	@PostMapping("/write")
	public String write(BoardDto boardDto) {
		
		return "board/write";
	}
	
	@GetMapping("/list")
	public String list(Model model){
		List<BoardDto> list = boardService.listArticle(null);
		model.addAttribute("articles", list);
		return "board/list";
	}

write(BoardDto boardDto) 이런식으로 파라미터를 객체형으로 받아서 사용할 수 있다.

 

Model model 을 사용해서 model.addAttribute("articles",list); 를 통해서 articles라는 이름으로 list를 담는다

 

return 시에 같이 날린다.

반응형

'Spring' 카테고리의 다른 글

Spring git으로 pull 받은 프로젝트 임폴트가안될때  (0) 2020.07.21
Spring 설치하기 및 설정하기  (0) 2020.07.15
Spiring JWt를 이용한 토큰 생성  (0) 2020.06.13
Spring : web.xml  (0) 2020.05.27
Spring : pom.xml  (0) 2020.05.27