본문 바로가기
Team project/대학학사관리 - Chelsea University

학생 및 교수 등록

by 개발자공부 2024. 10. 7.

 학생 및 교수 등록은 교직원만 할 수 있도록 만들었습니다. jsp 폼에서 입력 받은 값이 controller를 타서 DB에 저장되는 흐름입니다. controller 클래스에서는 get과 post 요청을 구별하여 동작합니다. 학생과 교수 모두 동작하는 흐름은 비슷하나 jsp에서 입력받는 값과 sql 쿼리문에만 약간 차이가 있습니다.

학생 등록
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/WEB-INF/views/home/staffHeader.jsp"%>
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/main.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/sidebar.css">

<!-- Custom CSS for this page -->
<style>

.table-container {
	padding: 10px;
	border-spacing: 10px;
}

.table-container td {
	padding-right: 30px;
}

.table-container input {
	padding: 5px;
	outline: none;
}

.essential-sign {
	color: red;
}

.submit-btn {
	border: none;
	padding: 5px 10px;
	color: #fff;
	background-color: #001489;
	border-radius: 5px;
}
</style>

    <div class="d-flex justify-content-center align-items-start" style="display:flex; min-width: 100em;">
        <!-- Sidebar Menu -->
        <div class="sub--menu">
            <div class="sub--menu--top">
                <h2>학사관리</h2>
            </div>
            <div class="sub--menu--mid">
                <table class="sub--menu--table" border="1">
                    <tbody>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/studentList">학생 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professorList">교수 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/student" class="selected--menu">학생 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professor">교수 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/tuition/bill">등록금 고지서 발송</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/break/list/staff">휴학 처리</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/sugang/period">수강신청 기간 설정</a></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>

        <!-- Main Content -->
        <main style="width: 100%; padding: 20px;">
            <h1 class="sub--title">학생 등록</h1>
            <div class="split--div"></div>
            <form action="${pageContext.request.contextPath}/user/student" method="post">
                <table class="table-container">
                    <tr>
                        <td><label for="name">이름<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="text" id="name" name="name" placeholder="학생 이름을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="birth">생년월일<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="date" id="birth" name="birth" placeholder="생년월일을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label>성별<span class="essential-sign">&#42;</span></label></td>
                        <td>
                            <label for="male">남성</label>
                            <input type="radio" id="male" name="gender" value="남성" required>
                            <label for="female">여성</label>
                            <input type="radio" id="female" name="gender" value="여성">
                        </td>
                    </tr>
                    <tr>
                        <td><label for="address">주소<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="text" id="address" name="address" placeholder="주소를 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="tel">전화번호<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="text" id="tel" name="tel" maxlength="13" pattern="^01([0|1|6|7|8|9])-([0-9]{3,4})-([0-9]{4})$" title="하이픈(-)포함하여 숫자 13자리 입력" placeholder="전화번호를 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="email">이메일<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="email" id="email" name="email" placeholder="이메일을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="dept-id">학과ID<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="text" id="dept-id" name="deptId" pattern="^[0-9]{3}$" title="999 이하 숫자만 입력" placeholder="학과ID를 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="entranceDate">입학일<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="date" id="entranceDate" name="entranceDate" placeholder="입학일을 입력하세요." required></td>
                    </tr>
                </table>
                <button type="submit" class="submit-btn">입력하기</button>
            </form>

            <c:if test="${not empty createStudentDto}">
                <%
                out.println("<script>alert('학생 정보 등록에 성공했습니다.'); history.back(); </script>");
                %>
            </c:if>
        </main>
    </div>
더보기
package com.chelseaUniversity.ver1.controller;

import java.io.IOException;
import java.sql.Date;
import java.util.List;

import com.chelseaUniversity.ver1.model.Notice;
import com.chelseaUniversity.ver1.model.Professor;
import com.chelseaUniversity.ver1.model.Schedule;
import com.chelseaUniversity.ver1.model.Staff;
import com.chelseaUniversity.ver1.model.StuStat;
import com.chelseaUniversity.ver1.model.Student;
import com.chelseaUniversity.ver1.model.User;
import com.chelseaUniversity.ver1.model.dto.ChangePasswordDto;
import com.chelseaUniversity.ver1.model.dto.CreateProfessorDto;
import com.chelseaUniversity.ver1.model.dto.CreateStudentDto;
import com.chelseaUniversity.ver1.model.dto.ProfessorListForm;
import com.chelseaUniversity.ver1.model.dto.StudentListForm;
import com.chelseaUniversity.ver1.model.dto.response.ProfessorInfoDto;
import com.chelseaUniversity.ver1.model.dto.response.StudentInfoDto;
import com.chelseaUniversity.ver1.repository.NoticeRepositoryImpl;
import com.chelseaUniversity.ver1.repository.ProfessorRepositoryImpl;
import com.chelseaUniversity.ver1.repository.ScheuleRepositoryImpl;
import com.chelseaUniversity.ver1.repository.StuStatRepositoryImpl;
import com.chelseaUniversity.ver1.repository.StudentRepositoryImpl;
import com.chelseaUniversity.ver1.repository.UserRepositoryImpl;
import com.chelseaUniversity.ver1.repository.interfaces.NoticeRepository;
import com.chelseaUniversity.ver1.repository.interfaces.ProfessorRepository;
import com.chelseaUniversity.ver1.repository.interfaces.ScheuleRepository;
import com.chelseaUniversity.ver1.repository.interfaces.StuStatRepository;
import com.chelseaUniversity.ver1.repository.interfaces.StudentRepository;
import com.chelseaUniversity.ver1.repository.interfaces.UserRepository;
import com.chelseaUniversity.ver1.service.ProfessorService;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

@WebServlet("/user/*")
public class UserController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private StudentRepository studentRepository;
	private ProfessorRepository professorRepository;
	private StudentListForm studentListForm;
	private ProfessorListForm professorListForm;
	private UserRepository userRepository;
	private NoticeRepository noticeRepository;
	private ScheuleRepository scheuleRepository;
	private StuStatRepository stuStatRepository;

	@Override
	public void init() throws ServletException {
		studentRepository = new StudentRepositoryImpl();
		professorRepository = new ProfessorRepositoryImpl();
		studentListForm = new StudentListForm();
		professorListForm = new ProfessorListForm();
		userRepository = new UserRepositoryImpl();
		noticeRepository = new NoticeRepositoryImpl();
		scheuleRepository = new ScheuleRepositoryImpl();
		stuStatRepository = new StuStatRepositoryImpl();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		HttpSession session = request.getSession();
		switch (action) {
		case "/signin":
			showSignIn(request, response, session);
			break;
		case "/studentList":
			showStudentListPage(request, response, session);
			break;
		case "/professorList":
			showProfessorListPage(request, response, session);
			break;
		case "/student":
			showStudentCreatePage(request, response, session);
			break;
		case "/professor":
			showProfessorCreatePage(request, response, session);
			break;
		case "/findid":
			showFindIdPage(request, response, session);
			break;
		case "/findpassword":
			showFindPasswordPage(request, response, session);
			break;
		case "/password":
			password(request, response, session);
			break;
		case "/home":
			showHomePage(request, response, session);
			break;
		case "/check":
			showCheckPage(request, response, session);
			break;
		case "/myinfo":
			showMyinfoPage(request, response, session);
			break;
		default:
			response.sendError(HttpServletResponse.SC_NOT_FOUND);
			break;
		}
	}

	/**
	 * 교직원 -> 학생 등록하기
	 * 
	 * @param request
	 * @param response
	 * @param session
	 */
	private void showStudentCreatePage(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
		try {
			request.getRequestDispatcher("/WEB-INF/views/staff/createStudent.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		HttpSession session = request.getSession();
		switch (action) {
		case "/signin":
			signInHandler(request, response, session);
			break;
		case "/student":
			CreateStudentHandler(request, response, session);
			break;
		case "/professor":
			CreateProfessorHandler(request, response, session);
			break;
		case "/findid":
			findIdHandler(request, response);
			break;
		case "/findpassword":
			findPasswordHandler(request, response);
			break;
		case "/changepassword":
			changePasswordHandler(request, response, session);
			break;
		case "/update":
			updateHandler(request, response, session);
			break;
		case "/check":
			checkHandler(request, response, session);
		default:
			break;
		}
	}

	/**
	 * 교직원 -> 학생 추가
	 * 
	 * @param request
	 * @param response
	 * @param session
	 */
	private void CreateStudentHandler(HttpServletRequest request, HttpServletResponse response, HttpSession session) {

		try {
			String name = request.getParameter("name");
			String birth = request.getParameter("birth");
			String gender = request.getParameter("gender");
			String address = request.getParameter("address");
			String tel = request.getParameter("tel");
			String email = request.getParameter("email");
			String deptId = request.getParameter("deptId");
			String entranceDate = request.getParameter("entranceDate");

			CreateStudentDto createStudentDto = new CreateStudentDto();

			createStudentDto.setName(name);
			createStudentDto.setBirthDate(Date.valueOf(birth));
			createStudentDto.setGender(gender);
			createStudentDto.setAddress(address);
			createStudentDto.setTel(tel);
			createStudentDto.setEmail(email);
			createStudentDto.setDeptId(Integer.parseInt(deptId));
			createStudentDto.setEntranceDate(Date.valueOf(entranceDate));

			int rowCount = studentRepository.insertToStudent(createStudentDto);

			if (rowCount == 1) {
				request.setAttribute("createStudentDto", createStudentDto);
				request.getRequestDispatcher("/WEB-INF/views/staff/createStudent.jsp").forward(request, response);
//				response.sendRedirect(request.getContextPath() + "/user/student");
			} else {
				response.sendRedirect(request.getContextPath() + "/staff/student");
//				request.getRequestDispatcher("/WEB-INF/views/user/createStudent.jsp").forward(request, response);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}
더보기
public class StudentRepositoryImpl implements StudentRepository {

	// TODO - 나중에 Define 클래스로 이동
	public static final String INSERT_STUDENT_SQL = " INSERT INTO student_tb(name,birth_date,gender,address,tel,dept_id,entrance_date,email) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ";
	public static final String SELECT_ALL_STUDENTS_ID = " SELECT id FROM student_tb ";
	public static final String SELECT_STUDENT_INFO_BY_ID = " SELECT * FROM student_tb WHERE id = ?";
	// 검색 쿼리
	public static final String SELECT_ALL_STUDENT_SQL = " SELECT * FROM student_tb ORDER BY id LIMIT ? OFFSET ? ";
	public static final String COUNT_ALL_STUDENT_SQL = " SELECT count(*) FROM student_tb ";
	public static final String SELECT_STUDENT_BY_DEPT_ID = " SELECT * FROM student_tb WHERE dept_id LIKE ? ";
	public static final String SELECT_STUDENT_BY_ID = " SELECT * FROM student_tb WHERE id LIKE ?";
	public static final String SELECT_STU_DEPT_AND_STU_ID = " SELECT * FROM student_tb WHERE id LIKE ? AND dept_id LIKE ? LIMIT ? OFFSET ? ";
	public static final String COUNT_STU_BY_ID = " SELECT count(*) FROM student_tb where id LIKE ? AND dept_id LIKE ? ";

@Override
	public int insertToStudent(CreateStudentDto createStudentDto) {

		int rowCount = 0;

		try (Connection conn = DBUtil.getConnection()) {
			conn.setAutoCommit(false);
			try (PreparedStatement pstmt = conn.prepareStatement(INSERT_STUDENT_SQL)) {
				pstmt.setString(1, createStudentDto.getName());
				pstmt.setDate(2, createStudentDto.getBirthDate());
				pstmt.setString(3, createStudentDto.getGender());
				pstmt.setString(4, createStudentDto.getAddress());
				pstmt.setString(5, createStudentDto.getTel());
				pstmt.setInt(6, createStudentDto.getDeptId());
				pstmt.setDate(7, createStudentDto.getEntranceDate());
				pstmt.setString(8, createStudentDto.getEmail());
				rowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return rowCount;
	}
    
}

 

교수 등록
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/WEB-INF/views/home/staffHeader.jsp" %>
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/main.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/sidebar.css">

<!-- Custom CSS for this page -->
<style>

.table-container {
	padding: 10px;
	border-spacing: 10px;
}

.table-container td {
	padding-right: 30px;
}

.table-container input {
	padding: 5px;
	outline: none;
}

.essential-sign {
	color: red;
}

.submit-btn {
	border: none;
	padding: 5px 10px;
	color: #fff;
	background-color: #001489;
	border-radius: 5px;
}
</style>

    <div class="d-flex justify-content-center align-items-start" style="display:flex; min-width: 100em;">
        <!-- Sidebar Menu -->
        <div class="sub--menu">
            <div class="sub--menu--top">
                <h2>학사관리</h2>
            </div>
            <div class="sub--menu--mid">
                <table class="sub--menu--table" border="1">
                    <tbody>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/studentList">학생 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professorList">교수 명단 조회</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/student">학생 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/user/professor" class="selected--menu">교수 등록</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/tuition/bill">등록금 고지서 발송</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/break/list/staff">휴학 처리</a></td>
                        </tr>
                        <tr>
                            <td><a href="${pageContext.request.contextPath}/sugang/period">수강신청 기간 설정</a></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>

    <main style="width: 100%; padding: 20px;">
            <h1 class="sub--title">교수 등록</h1>
            <div class="split--div"></div>
            <form action="${pageContext.request.contextPath}/user/professor" method="post">
                <table class="table-container">
                    <tr>
                        <td><label for="name">이름<span class="essential-sign">&#42;</span></label></td>
                        <td><input type="text" id="name" name="name" placeholder="교수 이름을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="birth">생년월일</label><span class="essential-sign">&#42;</span></td>
                        <td><input type="date" id="birth" name="birth" placeholder="생년월일을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label>성별</label><span class="essential-sign">&#42;</span></td>
                        <td>
                            <label for="male">남성</label> 
                            <input type="radio" id="male" name="gender" value="남성" required> 
                            <label for="female">여성</label> 
                            <input type="radio" id="female" name="gender" value="여성">
                        </td>
                    </tr>
                    <tr>
                        <td><label for="address">주소</label><span class="essential-sign">&#42;</span></td>
                        <td><input type="text" id="address" name="address" placeholder="주소를 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="tel">전화번호</label><span class="essential-sign">&#42;</span></td>
                        <td><input type="tel" id="tel" name="tel" placeholder="전화번호를 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="email">이메일</label><span class="essential-sign">&#42;</span></td>
                        <td><input type="email" id="email" name="email" placeholder="이메일을 입력하세요." required></td>
                    </tr>
                    <tr>
                        <td><label for="dept-id">과ID</label><span class="essential-sign">&#42;</span></td>
                        <td><input type="text" id="dept-id" name="deptId" placeholder="소속된 학과ID를 입력하세요." required></td>
                    </tr>
                </table>
                <button type="submit" class="submit-btn">입력하기</button>
            </form>
            
            <c:if test="${not empty createProfessorDto}">
                <%
                out.println("<script>alert('교수 정보 등록에 성공했습니다.'); history.back(); </script>");
                %>
            </c:if>
        </main>
    </div>
더보기
@WebServlet("/user/*")
public class UserController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private StudentRepository studentRepository;
	private ProfessorRepository professorRepository;
	private StudentListForm studentListForm;
	private ProfessorListForm professorListForm;
	private UserRepository userRepository;
	private NoticeRepository noticeRepository;
	private ScheuleRepository scheuleRepository;
	private StuStatRepository stuStatRepository;

	@Override
	public void init() throws ServletException {
		studentRepository = new StudentRepositoryImpl();
		professorRepository = new ProfessorRepositoryImpl();
		studentListForm = new StudentListForm();
		professorListForm = new ProfessorListForm();
		userRepository = new UserRepositoryImpl();
		noticeRepository = new NoticeRepositoryImpl();
		scheuleRepository = new ScheuleRepositoryImpl();
		stuStatRepository = new StuStatRepositoryImpl();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		HttpSession session = request.getSession();
		switch (action) {
		case "/signin":
			showSignIn(request, response, session);
			break;
		case "/studentList":
			showStudentListPage(request, response, session);
			break;
		case "/professorList":
			showProfessorListPage(request, response, session);
			break;
		case "/student":
			showStudentCreatePage(request, response, session);
			break;
		case "/professor":
			showProfessorCreatePage(request, response, session);
			break;
		case "/findid":
			showFindIdPage(request, response, session);
			break;
		case "/findpassword":
			showFindPasswordPage(request, response, session);
			break;
		case "/password":
			password(request, response, session);
			break;
		case "/home":
			showHomePage(request, response, session);
			break;
		case "/check":
			showCheckPage(request, response, session);
			break;
		case "/myinfo":
			showMyinfoPage(request, response, session);
			break;
		default:
			response.sendError(HttpServletResponse.SC_NOT_FOUND);
			break;
		}
	}
    
    /**
	 * 교직원 -> 교수 등록하기
	 * 
	 * @param request
	 * @param response
	 * @param session
	 */
	private void showProfessorCreatePage(HttpServletRequest request, HttpServletResponse response,
			HttpSession session) {
		try {
			request.getRequestDispatcher("/WEB-INF/views/staff/createProfessor.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getPathInfo();
		HttpSession session = request.getSession();
		switch (action) {
		case "/signin":
			signInHandler(request, response, session);
			break;
		case "/student":
			CreateStudentHandler(request, response, session);
			break;
		case "/professor":
			CreateProfessorHandler(request, response, session);
			break;
		case "/findid":
			findIdHandler(request, response);
			break;
		case "/findpassword":
			findPasswordHandler(request, response);
			break;
		case "/changepassword":
			changePasswordHandler(request, response, session);
			break;
		case "/update":
			updateHandler(request, response, session);
			break;
		case "/check":
			checkHandler(request, response, session);
		default:
			break;
		}
	}
    
    /**
	 * 교직원 -> 교수 추가
	 * 
	 * @param request
	 * @param response
	 * @param session
	 */
	private void CreateProfessorHandler(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
		try {
			String name = request.getParameter("name");
			String birth = request.getParameter("birth");
			String gender = request.getParameter("gender");
			String address = request.getParameter("address");
			String tel = request.getParameter("tel");
			String email = request.getParameter("email");
			String deptId = request.getParameter("deptId");

			CreateProfessorDto createProfessorDto = new CreateProfessorDto();
			createProfessorDto.setName(name);
			createProfessorDto.setBirthDate(Date.valueOf(birth));
			createProfessorDto.setGender(gender);
			createProfessorDto.setAddress(address);
			createProfessorDto.setTel(tel);
			createProfessorDto.setEmail(email);
			createProfessorDto.setDeptId(Integer.parseInt(deptId));

			int rowCount = professorRepository.insertToProfessor(createProfessorDto);

			if (rowCount == 1) {
				request.setAttribute("createProfessorDto", createProfessorDto);
				request.getRequestDispatcher("/WEB-INF/views/staff/createProfessor.jsp").forward(request, response);
			} else {
				response.sendRedirect(request.getContextPath() + "/user/professor");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    
    }
더보기
public class ProfessorRepositoryImpl implements ProfessorRepository {

	public static final String INSERT_PROFESSOR_SQL = " INSERT INTO professor_tb(name,birth_date,gender,address,tel,dept_id,email) VALUES (?, ?, ?, ?, ?, ?, ?) ";
	public static final String SELECT_ALL_PROFESSOR_LIMIT = " SELECT * FROM professor_tb ORDER BY id limit ? offset ? ";
	public static final String SELECT_ALL_PROFESSOR = " SELECT * FROM professor_tb ORDER BY id ";
	public static final String COUNT_ALL_PROFESSOR_SQL = " SELECT count(*) FROM professor_tb ";
	public static final String COUNT_PROFESSOR_BY_DEPT_ID = " SELECT count(*) FROM professor_tb WHERE dept_id = ? ";
	public static final String SELECT_PROFESSOR_BY_DEPT_ID = " SELECT * FROM professor_tb WHERE dept_id = ? ";
	public static final String SELECT_PROFESSORDEPT_BYID = " SELECT name FROM department_tb WHERE id = ? ";
	public static final String SELECT_PROFESSOR_BY_ID = " SELECT * FROM professor_tb AS p LEFT JOIN department_tb AS d ON p.dept_id = d.id WHERE p.id = ?; ";
	public static final String SELECT_PRO_DEPT_AND_PRO_ID = " SELECT * FROM professor_tb WHERE id LIKE ? AND dept_id LIKE ? LIMIT ? OFFSET ? ";
	public static final String COUNT_PRO_BY_ID = " SELECT count(*) FROM professor_tb where id LIKE ? AND dept_id LIKE ? ";

@Override
	public int insertToProfessor(CreateProfessorDto createProfessorDto) {

		int rowCount = 0;

		try (Connection conn = DBUtil.getConnection()) {
			conn.setAutoCommit(false);
			try (PreparedStatement pstmt = conn.prepareStatement(INSERT_PROFESSOR_SQL)) {
				pstmt.setString(1, createProfessorDto.getName());
				pstmt.setDate(2, createProfessorDto.getBirthDate());
				pstmt.setString(3, createProfessorDto.getGender());
				pstmt.setString(4, createProfessorDto.getAddress());
				pstmt.setString(5, createProfessorDto.getTel());
				pstmt.setInt(6, createProfessorDto.getDeptId());
				pstmt.setString(7, createProfessorDto.getEmail());
				rowCount = pstmt.executeUpdate();
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				e.printStackTrace();
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return rowCount;
	}

}