USE BBS;
CREATE TABLE IF NOT EXISTS bbs(
bbs_id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
bbs_title VARCHAR(32) NOT NULL,
bbs_content VARCHAR(1000) NOT NULL,
author VARCHAR(32) NOT NULL,
date DATETIME DEFAULT CURRENT_TIMESTAMP
);
BbsDto 생성
Dto 패키지 아래에 BbsDto를 생성해줍니다.
package com.app.app.Dto;
public class BbsDto {
private String bbs_id;
private String bbs_title;
private String bbs_content;
private String author;
private String date;
public String getBbs_id() {
return bbs_id;
}
public void setBbs_id(String bbs_id) {
this.bbs_id = bbs_id;
}
public String getBbs_title() {
return bbs_title;
}
public void setBbs_title(String bbs_title) {
this.bbs_title = bbs_title;
}
public String getBbs_content() {
return bbs_content;
}
public void setBbs_content(String bbs_content) {
this.bbs_content = bbs_content;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
위와 같이 찍힌다 이제 추출한 값을 가지고 DB조회를 하여 입력된 id와 password가 일치하는지 확인한다
UDao와 UserDao 수정
UDao에 아래 코드를 추가해준다
public UserDto Login(Map map);
UserDao에도 아래 코드를 추가한다
@Override
public UserDto Login(Map map) {
return null;
}
로그인을 위한 SQL 작성
UDao.xml에 아래 코드를 추가해준다
<select parameterType="Map" id="Login" resultType="com.app.app.Dto.UserDto">
SELECT user_id FROM user WHERE user_id = #{id} AND password = #{password}
</select>
위 SQL문은 id와 password 를 이용하여 두 값이 모두 일치하는 user_id를 뽑아낸다.
<script>
function check(){
id = $("#user_id").val();
$.ajax({
url: 'ID_Check',
type: 'POST',
dataType: 'text', //서버로부터 내가 받는 데이터의 타입
contentType : 'text/plain; charset=utf-8;',//내가 서버로 보내는 데이터의 타입
data: id ,
success: function(data){
if(data == 0){
console.log("아이디 없음");
alert("사용하실 수 있는 아이디입니다.");
}else{
console.log("아이디 있음");
alert("중복된 아이디가 존재합니다.");
}
},
error: function (){
}
});
}
</script>
UDao와 UserDao 수정
interface UDao에 아이디 중복 체크와 관련된 새로운 메소드를 생성해 줍니다.
package com.app.app.Dao;
import java.util.ArrayList;
import java.util.Map;
import com.app.app.Dto.UserDto;
public interface UDao {
public void Register(Map map);
public UserDto Id_Check(String id);
}
UDao의 구현클래스 UserDao에서 추가된 메소드를 재정의 해줍니다.
package com.app.app.Dao;
import java.util.ArrayList;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import com.app.app.Dto.UserDto;
public class UserDao implements UDao{
JdbcTemplate template;
@Autowired
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
@Override
public void Register(Map map) { }
@Override
public UserDto Id_Check(String id) {
return null;
}
}
mapper 수정
com.app.app.mapper에 있는 UDao.xml에 아래 구문을 추가해줍니다.
<select parameterType="String" id="Id_Check" resultType="com.app.app.Dto.UserDto">
SELECT user_id FROM user where user_id = #{id}
</select>
AppController 수정
Register페이지에서 /ID_Check 로 보낸 아이디값을 DB에서 조회하고 중복 여부를 알려주는 메소드 ID_Check를 만들어 줍니다.
@ResponseBody
@RequestMapping(value = "/ID_Check", produces="text/plane")
public String ID_Check(@RequestBody String paramData) throws ParseException {
//클라이언트가 보낸 ID값
String ID = paramData.trim();
System.out.println(ID);
UDao dao = sqlSession.getMapper(UDao.class);
UserDto dto = dao.Id_Check(ID);
if(dto != null) {//결과 값이 있으면 아이디 존재
return "-1";
} else { //없으면 아이디 존재 X
System.out.println("null");
return "0";
}
}