UserMapper.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="user">
<select id="userId" resultType="String" parameterType="String">
SELECT name
FROM user
WHERE user_id =#{user_id}
</select>
</mapper>
UserDAO์์ฑ
package com.demo.dao;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class UserDAO {
@Autowired
private SqlSessionTemplate sqlTemplate;
public String cheakUserID(String user_id) {
return sqlTemplate.selectOne("user.userIdExist", user_id) ;
}
}
UserService์์ฑ
package com.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.demo.dao.UserDAO;
@Service
public class UserService {
@Autowired
private UserDAO userDAO;
public boolean checkuserIdExist(String user_id) {
String user_name = userDAO.cheakUserID(user_id);
if (user_name == null) {
return true;
} else {
return false;
}
}
}
ํ ์คํธ๋ฅผ ์ํด MySQL ์ ์ ๋ฐ์ดํฐ ํ๋ ๋ฃ์
insert into user(name, user_id, user_pw)
value ('ํ๊ธธ๋','hong',1234);

RestApiController ์์ฑ ํ
package com.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.demo.service.UserService;
//RestContoller๋ ํ๋ฉด์ ํ์ํ์ง ์๊ณ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
@RestController
public class RestApiController {
@Autowired
private UserService userService;
@GetMapping("/user/check/{user_id}")
public String checkUserIdExist(@PathVariable String user_id) {
//์ ์ ์์ด๋๊ฐ ์์ผ๋ฉด true ์์ผ๋ฉด false
boolean check = userService.checkuserIdExist(user_id);
return check +"";
}
}

๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ ๊ฒฝ์ฐ true ์ถ๋ ฅ

๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ ๊ฒฝ์ฐ false์ถ๋ ฅ

restcontroller๋ ๋ฐ์ดํฐ๋ง ์ ์ก๋จ
ํ์ ๋ฐ์ดํฐ๋ check ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง๋ง ๋ฆฌํดํด์ค

์ฃผ์ ๋ณ์๊ฐ ๋ค์ด๊ฐ @pathVariable ๋ก ๋ฐ์ String user_id ๊ฐ์ด ๋ค์ด๊ฐ๋ค
์ฃผ์์์ ๋ฐ์ ๊ฐ์ผ๋ก ์์ด๋๊ฐ ์๋ ์ง ์๋์ง ๊ฒ์ฌ
UserVO
@AssertTrue(message = "์์ด๋ ์ค๋ณต์ฒดํฌ ํด์ฃผ์ธ์")
private boolean userIdChecked;
public UserVO() {
this.userIdChecked = false;
}
public boolean isUserIdChecked() {
return userIdChecked;
}
public void setUserIdChecked(boolean userIdChecked) {
this.userIdChecked = userIdChecked;
}

AssertTrue :์ฐธ์ด ์๋๋ฉด ์๋ฌ์
์ ์ vo๊ฐ ์์ฑ ์์ ์ด๊ธฐ ๊ฐ์ false๋ก ์ค -> ๋ฐ๊ฟ์ฃผ์ง ์์ผ๋ฉด false์
getset๋ฉ์๋ ์์ฑ
join.jsp
์ค๋ณตํ์ธ ๋ฒํผ์ onclick ์ผ๋ก checkId() ํจ์ ์คํํ๋๋ก ํจ
<div class="form-group">
<form:label path="user_id">์์ด๋</form:label>
<div class="input-group">
<form:input path="user_id" onkeypress="resetUserIdExist()" class="form-control" />
<div class="input-group-append">
<button type="button" onclick="checkId()" class="btn btn-primary">์ค๋ณตํ์ธ</button>
</div>
</div>
<form:errors path="user_id" />
</div>
<div class="form-group" id="idCheck">
<form:hidden path="userIdChecked"/>
<form:errors path="userIdChecked" />
</div>

userId ์ฒดํฌํ๋ ํผ (ํ๋ ์)
join.jsp ํ๋จ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ถ๊ฐํจ
checkId() ํจ์
<!-- ํ๋จ ๋ฉ๋ด ๋ถ๋ถ -->
<c:import url="/WEB-INF/views/include/footer.jsp" />
<!-- ์๋ฐ ์คํฌ๋ฆฝํธ -->
<script type="text/javascript">
function checkId(){
const user_id = $("#user_id").val()//์ ์ด์ฟผ๋ฆฌ๋ก ์
๋ ฅ๋ ์ ์ ์์ด๋๋ฅผ ์ ์ฅ
if(user_id.length == 0){
alert('์์ด๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์')
return
}
// ์ ์ด์ฟผ๋ฆฌ์ ajax๋ฌธ๋ฒ
$.ajax({
url : '${root}/user/check/' + user_id,
type : 'get',
dataType : 'text',
success : function(result){
if(result.trim() == 'true'){
alert('์ฌ์ฉํ ์ ์๋ ์์ด๋์
๋๋ค')
$("#userIdChecked").val('true');//์์ด๋ ์ค๋ณต ์ฒดํฌ ์๋ฃ
$("#idCheck span").text('');//์๋ฌ ์ด๊ธฐํ
} else {
alert('์ฌ์ฉํ ์ ์๋ ์์ด๋ ์
๋๋ค')
$("#userIdChecked").val('false');//์์ด๋ ์ค๋ณต ์ฒดํฌ ์๋ฃ
}
}
})
}
function resetUserIdExist(){
$("#checkId").val('false')
}
</script>



userMapper.xml
<insert id="newUser" parameterType="com.demo.domain.UserVO">
INSERT INTO user(name , user_id, user_pw)
VALUSES(#{name},#{user_id},#{user_pw})
</insert>
userDAO
//ํ์๊ฐ์
-์ ์ ์ถ๊ฐ
public void addUser(UserVO joinUser) {
sqlTemplate.insert("user.newUser");
}
UserService
//ํ์๊ฐ์
- ์ ์ ์ถ๊ฐ
public void addUser(UserVO joinUser) {
userDAO.addUser(joinUser);
}
UserController- DB์ ์ ์ ์ ์ ์ฅ ์ถ๊ฐ
@Autowired
private UserService uService;
@PostMapping("/join_pro")
public String join_pro(@Valid @ModelAttribute("joinUser") UserVO joinUser,
BindingResult result , Model model) {
if(result.hasErrors()) {
return "user/join";
}
if(!joinUser.getUser_pw().equals(joinUser.getUser_pw2())) {
model.addAttribute("msg", "๋น๋ฐ๋ฒํธ๊ฐ ๊ฐ์ง ์์ต๋๋ค.!");
return "user/join";
}
//DB์ ์ ์ ์ ๋ฅผ ์ ์ฅ
uService.addUser(joinUser);
return "user/join_success";
}
'BACKEND > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ์๋จ ํ๋ฉด์ ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ํ์ (0) | 2023.10.30 |
|---|---|
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ๋ก๊ทธ์ธ ์ฒ๋ฆฌ (1) | 2023.10.30 |
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ์ ํจ์ฑ ๊ฒ์ฌ (1) | 2023.10.27 |
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2- VO์์ฑ ๋ฐ MyBatis ์ค์ , ์ธํฐ์ ํฐ ์ค์ (0) | 2023.10.26 |
| ๊ฒ์ํ ๋ง๋ค๊ธฐ 2 - ํ ์ด๋ธ ๋ง๋ค๊ธฐ(DB) (1) | 2023.10.26 |