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 |