ν°μ€ν 리 λ·°
Project/Instagram
[spring] ν΄λ‘ μ½λ©16 Follow - Model, Repository, Mapper, Test, Service, Controller
yeahajeong 2020. 4. 20. 19:52λ°μν
νμ€νκ·Έλ¨μ λ§λ€λ©΄μ κ°μ₯ λ¨Έλ¦¬κ° μν λ λΆλΆμ΄ νλ‘μ° λΆλΆμ΄μλ€. νμμ΄λ κ²μκΈ κ°μ κ²½μ° λ€λ₯Έ κ²μν νμ΄μ§μ νμ΄ λΉμ·ν΄μ μκ°λ³΄λ€ μμνκ² λ§λ€μ μμμ§λ§ νλ‘μ°λ DBꡬμ±λ μ΄λ»κ² ν΄μΌν μ§ λ§λ§νλ€.
Model
FollowVO
@Setter
@Getter
@ToString
public class FollowVO {
private int followNo;
private int activeUser;
private int passiveUser;
private Date regDate;
private String activeUserId;
private String passiveUserId;
private String profileName;
}
μ°μ DBμλ νλ‘μ°λ²νΈ, νλ‘μ°κ±΄μ μ , νλ‘μ°λΉνμ μ , νλ‘μ°λ±λ‘λ μ§λ₯Ό λ§λ€μκ³ , νλ‘ νΈμμ νλ‘μ°λ¦¬μ€νΈλ₯Ό νμΈν λ μ μ μ μμ΄λμ νλ‘ν μ¬μ§μ 보μ΄κΈ° μν΄ νλλ₯Ό μΆκ°ν΄ λμλ€.
Repository
IFollowDAO
public interface IFollowDAO {
//νλ‘μ° νκΈ°
void follow(FollowVO follow);
//μΈνλ‘μ° νκΈ°
void unfollow(FollowVO follow);
//νλ‘μ° μ 무
int isFollow(FollowVO follow);
//νλ‘μ° λ¦¬μ€νΈ μ‘°ν
List<FollowVO> selectActiveUserList(int activeUser);
//νλ‘μ 리μ€νΈ μ‘°ν
List<FollowVO> selectPassiveUserList(int passiveUser);
//νν΄μ νλ‘μ°μμ
void deleteUserAllFollow(int activeUser);
}
- νλ‘μ°νκΈ°
- μΈνλ‘μ°νκΈ°
- νλ‘μ° μ 무 νμΈ
- νλ‘μ° λ¦¬μ€νΈ μ‘°ν
- νλ‘μ 리μ€νΈ μ‘°ν
- νν΄μ νλ‘μ° μ 체 μμ
Mapper
FollowMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hastagram.myapp.follow.repository.IFollowDAO">
<resultMap type="com.hastagram.myapp.follow.model.FollowVO" id="FollowResultMap">
<id property="followNo" column="follow_no" />
<result property="activeUser" column="active_user" />
<result property="passiveUser" column="passive_user" />
<result property="regDate" column="reg_date"/>
<result property="activeUserId" column="active_user_id" />
<result property="passiveUserId" column="passive_user_id" />
<result property="profileName" column="profile_name" />
</resultMap>
<resultMap type="com.hastagram.myapp.users.model.UsersVO" id="UsersResultMap">
<id property="userNo" column="user_no" />
<result property="email" column="email"/>
<result property="id" column="id"/>
<result property="pw" column="pw"/>
<result property="name" column="name"/>
<result property="intro" column="intro"/>
<result property="phone" column="phone"/>
<result property="regDate" column="regDate"/>
</resultMap>
<!-- νλ‘μ° κΈ°λ₯ -->
<insert id="follow">
insert into follow(active_user, passive_user) values(#{activeUser},#{passiveUser})
</insert>
<!-- μΈνλ‘μ° κΈ°λ₯ -->
<delete id="unfollow">
delete from follow where active_user=#{activeUser} and passive_user=#{passiveUser}
</delete>
<!-- νλ‘μ° μ 무 μ‘°ν κΈ°λ₯ -->
<select id="isFollow" resultType="int">
select count(*) from follow where active_user=#{activeUser} and passive_user=#{passiveUser}
</select>
<!-- νλ‘μ° λ¦¬μ€νΈ μ‘°ν -->
<select id="selectActiveUserList" resultMap="FollowResultMap">
select
active_user,
passive_user,
F.reg_date as reg_date,
U.id as passive_user_id,
I.profile_name as profile_name
from follow F
left outer join users U
on (F.passive_user = U.user_no)
left outer join user_imgs I
on (I.user_no = U.user_no)
where active_user=#{activeUser}
order by reg_date desc
</select>
<!-- νλ‘μ 리μ€νΈ μ‘°ν -->
<select id="selectPassiveUserList" resultMap="FollowResultMap">
select
active_user,
passive_user,
F.reg_date as reg_date,
U.id as active_user_id,
I.profile_name as profile_name
from follow F
left outer join users U
on (F.active_user = U.user_no)
left outer join user_imgs I
on (I.user_no = U.user_no)
where passive_user=#{passiveUser}
order by reg_date desc;
</select>
<!-- νν΄μ νλ‘μ° μμ -->
<delete id="deleteUserAllFollow">
delete from follow where active_user=#{active_user}
</delete>
</mapper>
mvc-config.xml
<mybatis-spring:scan base-package="com.hastagram.myapp.follow.repository"/>
JUnitTest
FollowDAOTest
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:/spring/mvc-config.xml"})
public class FollowDAOTest {
@Autowired
private IFollowDAO followDAO;
//νλ‘μ° ν
μ€νΈ
@Test
public void followTest() throws Exception {
FollowVO vo = new FollowVO();
vo.setActiveUser(2);
vo.setPassiveUser(4);
followDAO.follow(vo);
}
//μΈνλ‘μ° ν
μ€νΈ
@Test
public void unfollowTest() throws Exception {
FollowVO vo = new FollowVO();
vo.setActiveUser(2);
vo.setPassiveUser(4);
followDAO.unfollow(vo);
}
//λ§ν μ 무 ν
μ€νΈ
@Test
public void isfollowTest() throws Exception {
FollowVO vo = new FollowVO();
vo.setActiveUser(2);
vo.setPassiveUser(4);
int result = followDAO.isFollow(vo);
if(result == 0) {
System.out.println("νλ‘μ° λμ΄μμ§ μμ");
} else {
System.out.println("νλ‘μ° λμ΄μμ");
}
}
//νλ‘μ, νλ‘μ 리μ€νΈ μ‘°ν
@Test
public void selectList() throws Exception {
List<FollowVO> follower = followDAO.selectPassiveUserList(3);
List<FollowVO> following = followDAO.selectActiveUserList(3);
System.out.println(follower);
System.out.println(following);
}
}
Service
IFollowService
public interface IFollowService {
//νλ‘μ° νκΈ°
void follow(FollowVO follow);
//μΈνλ‘μ° νκΈ°
void unfollow(FollowVO follow);
//νλ‘μ° μ 무
int isFollow(FollowVO follow);
//νλ‘μ° λ¦¬μ€νΈ μ‘°ν
List<FollowVO> selectActiveUserList(int activeUser);
//νλ‘μ 리μ€νΈ μ‘°ν
List<FollowVO> selectPassiveUserList(int passiveUser);
}
Controller
FollowController
@RestController
public class FollowController {
private static final Logger logger = LoggerFactory.getLogger(UsersController.class);
@Autowired
private IFollowService followService;
@Autowired
private IUsersService usersService;
κ³΅ν΅ URL μμ
λ°μν
'Project > Instagram' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[spring] ν΄λ‘ μ½λ© 18 Follow - νλ‘μ, νλ‘μ 리μ€νΈ μ‘°ν (0) | 2020.04.21 |
---|---|
[spring] ν΄λ‘ μ½λ©17 Follow - νλ‘μ°, μΈνλ‘μ° (0) | 2020.04.20 |
[spring] ν΄λ‘ μ½λ©15 Post - κ²μκΈ μμ (0) | 2020.04.20 |
[spring] ν΄λ‘ μ½λ©14 Post - κ²μκΈ λ±λ‘ (0) | 2020.04.20 |
[spring] ν΄λ‘ μ½λ©13 Post - κ²μκΈ μ‘°ν (0) | 2020.04.20 |
λκΈ
곡μ§μ¬ν
μ΅κ·Όμ μ¬λΌμ¨ κΈ
μ΅κ·Όμ λ¬λ¦° λκΈ
- Total
- Today
- Yesterday
λ§ν¬
TAG
- μ€νλ§λΆνΈ μλμμ±
- μλ°
- μ¨λ¦¬μμ€
- κ°λ°ν경ꡬμΆ
- java νκ²½λ³μ
- λ³λͺ μ²λ¦¬
- κ²μν μμ
- μ 체κ²μλ¬Ό μ‘°ν
- μ΄ν΄λ¦½μ€ νκΈ μΈμ½λ©
- κ²μλ¬Ό μμ
- μ΄ν΄λ¦½μ€ μ€μΉ
- κ°λ°
- κ²μνλ§λ€κΈ°
- typeAliases
- μκ³ λ¦¬μ¦
- Algorithm
- Java
- κ²μν μ‘°ν
- κ²μλ¬Όμ‘°ν
- λΆνΈ μλμμ±
- mysqlμ€μΉ
- tomcatμ€μΉ
- μλ£κ΅¬μ‘°
- java jdk μ€μΉ
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
κΈ λ³΄κ΄ν¨