Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Menu
- 메소드
- 전화걸기
- JavaScript
- layout
- JSP
- 배열
- oracle
- OGNL
- 예외처리
- Spring
- 이클립스
- AWT
- Eclips
- mybatis
- 클래스
- paint
- Android
- 오버로딩
- 안드로이드
- 생성자
- 국제화
- Graphic
- 에러페이지
- Java
- 메서드
- HTML
- 어노테이션
- struts2
- 기본
Archives
- Today
- Total
note
Spring DB 연동 회원가입 JdbcTemplate 본문
비어있는 설정파일
파일 위치
selectList.jsp 에러가 나는데 이클립스 인식오류 입니다
실행시 이상없음
추가, 리스트
수정 삭제
dispatcher-servlet.xml
messages.label
messages.validation
exception
InsertController
package dr.mini.controller;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import dr.mini.dao.MemberDao;
import dr.mini.domain.MemberCommand;
import dr.mini.validator.MemberValidator;
@Controller
public class InsertController {
private MemberDao memberDao;
private String formViewName = "insertForm";
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
@RequestMapping(value="/insert.do",method=RequestMethod.GET)
public String form(){
return formViewName;
}
@ModelAttribute
public MemberCommand formBacking(){
return new MemberCommand();
}
@RequestMapping(value="/insert.do",method=RequestMethod.POST)
public String submit(@Valid MemberCommand memberCommand,BindingResult result){
if(result.hasErrors()){
return formViewName;
}
memberDao.insertMember(memberCommand);
return "redirect:/list.do";
}
@InitBinder
protected void initBinder(WebDataBinder binder){
binder.setValidator(new MemberValidator());
}
}
SelectListController
package dr.mini.controller;
import java.util.Collections;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import dr.mini.dao.MemberDao;
import dr.mini.domain.MemberCommand;
@Controller
public class SelectListController {
private static Log log = LogFactory.getLog(SelectListController.class);
private MemberDao memberDao;
private int pageSize = 10; // 한페이지의 글의 개수
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
@RequestMapping("/list.do")
public ModelAndView process(
@RequestParam(value = "pageNum", required = false) String pageNum) {
if(pageNum == null){
pageNum = "1";
}
int currentPage = Integer.parseInt(pageNum);
//한 페이지의 시작글 번호
int startRow = (currentPage - 1)* pageSize +1;
//한 페이지의 마지막 글번호
int endRow = currentPage * pageSize;
if(log.isDebugEnabled()){
log.debug("memberDao : "+memberDao);
}
int count = memberDao.getMemberCount();
Listlist = null;
if(count>0){
list = memberDao.getMemberList(startRow,endRow);
}else{
list = Collections.emptyList();
}
ModelAndView mav = new ModelAndView();
mav.setViewName("selectList");
mav.addObject("count",count);
mav.addObject("currentPage",currentPage);
mav.addObject("pageSize",pageSize);
mav.addObject("list",list);
return mav;
}
}
SelectController
package dr.mini.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import dr.mini.dao.MemberDao;
import dr.mini.domain.MemberCommand;
@Controller
public class SelectController {
private static Log log = LogFactory.getLog(SelectController.class);
private MemberDao memberDao;
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
@RequestMapping("/detail.do")
public ModelAndView process(@RequestParam("id") String id){
if(log.isDebugEnabled()){
log.debug("memberDao : "+memberDao);
}
MemberCommand member = memberDao.getMember(id);
return new ModelAndView("select","member",member);
}
}
UpdateController
package dr.mini.controller;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import dr.mini.dao.MemberDao;
import dr.mini.domain.MemberCommand;
import dr.mini.validator.MemberValidator;
@Controller
public class UpdateController{
private MemberDao memberDao;
private String formViewName = "updateForm";
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
@RequestMapping(value="/update.do", method=RequestMethod.GET)
public ModelAndView form(@RequestParam("id") String id){
MemberCommand memberCommand = memberDao.getMember(id);
return new ModelAndView(formViewName, "memberCommand", memberCommand);
}
@ModelAttribute
public MemberCommand formBacking() {
return new MemberCommand();
}
@RequestMapping(value="/update.do", method=RequestMethod.POST)
public String submit(@Valid MemberCommand memberCommand, BindingResult result){
if(result.hasErrors()){
return formViewName;
}
memberDao.updateMember(memberCommand);
return "redirect:/list.do";
}
@InitBinder
protected void initBinder(WebDataBinder binder){
binder.setValidator(new MemberValidator());
}
}
DeleteController
package dr.mini.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import dr.mini.dao.MemberDao;
@Controller
public class DeleteController{
private MemberDao memberDao;
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
@RequestMapping("/delete.do")
public ModelAndView process(@RequestParam("id") String id){
memberDao.deleteMember(id);
return new ModelAndView("redirect:list.do");
}
}
MemberDao
package dr.mini.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import dr.mini.domain.MemberCommand;
public class MemberDao {
private JdbcTemplate jdbcTemplate;
public MemberDao(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
// 글 등록
private static final String INSERT_SQL = "insert into MEMBER1 values (?,?,?,sysdate)";
public void insertMember(MemberCommand member) {
jdbcTemplate.update(
INSERT_SQL,
new Object[] { member.getId(), member.getPasswd(),
member.getName() });
}
// 글의 총 갯수
private static final String SELECT_COUNT_SQL = "select count(*) from MEMBER1";
public int getMemberCount() {
return jdbcTemplate.queryForInt(SELECT_COUNT_SQL);
}
// 글 목록
private static final String SELECT_LIST_SQL = "select * from (select a.*, rownum rnum from (select * from MEMBER1 order by register desc)a) where rnum >= ? and rnum <=?";
public List getMemberList(int startRow, int endRow) {
List list = jdbcTemplate.query(SELECT_LIST_SQL,
new Object[] { startRow, endRow },
new RowMapper() {
public MemberCommand mapRow(ResultSet rs, int rowNum)
throws SQLException {
MemberCommand member = new MemberCommand();
member.setId(rs.getString("id"));
member.setPasswd(rs.getString("passwd"));
member.setName(rs.getString("name"));
member.setRegister(rs.getTimestamp("register"));
return member;
}
});
return list;
}
//글 상세
private static final String SELECT_SQL ="select * from MEMBER1 where id=?";
public MemberCommand getMember(String id){
MemberCommand member = (MemberCommand)jdbcTemplate.queryForObject(SELECT_SQL, new Object[]{ id }, new RowMapper(){
public MemberCommand mapRow(ResultSet rs, int rowNum)throws SQLException{
MemberCommand member = new MemberCommand();
member.setId(rs.getString("id"));
member.setPasswd(rs.getString("passwd"));
member.setName(rs.getString("name"));
member.setRegister(rs.getTimestamp("register"));
return member;
}
});
return member;
}
}
익명 내부 클래스의 형태로 사용
MemberCommand
package dr.mini.domain;
import java.sql.Timestamp;
public class MemberCommand{
private String id;
private String passwd;
private String name;
private Timestamp register;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Timestamp getRegister() {
return register;
}
public void setRegister(Timestamp register) {
this.register = register;
}
@Override
public String toString() {
return "Member [id=" + id + ", name=" + name + ", passwd=" + passwd
+ ", reg_date=" + register + "]";
}
}
MemberValidator
package dr.mini.validator;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import dr.mini.domain.MemberCommand;
public class MemberValidator implements Validator {
public boolean supports(Class clazz) {
return MemberCommand.class.isAssignableFrom(clazz);
}
public void validate(Object target, Errors errors) {
MemberCommand command = (MemberCommand) target;
System.out.println(command);
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"id", "error.required.member.id");
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"passwd", "error.required.member.passwd");
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name", "error.required.member.name");
}
}
deleteForm.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<<span class="hljs-attribute">spring</span>:message code=<span class="hljs-string">"member.delete.title"</span>/>
member1 테이블에 레코드 삭제 예제
exception.jsp
<%@ page contentType="text/html; charset=EUC-KR" %>
에러
요청을 처리하는 과정에서 문제가 발생했습니다:
${exception.message}
<%
Throwable exception = (Throwable) request.getAttribute("exception");
exception.printStackTrace();
%>
insertForm.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<span class="hljs-operator"><</span>spring:message code<span class="hljs-operator">=</span><span class="hljs-string">"member.insert.title"</span><span class="hljs-operator">/></span>
member1 테이블에 레코드삽입(추가)예제
아이디 :
패스워드 :
이름:
select.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<spring:message code=<span class="hljs-string">"member.detail.title"</span> arguments=<span class="hljs-string">"<span class="hljs-variable">${member.id }</span>"</span> />
아이디 : ${member.id }
패스워드 : ${member.passwd }
이름:${member.name }
날짜:
목록보기 | 수정 | 삭제
selectList.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<<span class="hljs-attribute">spring</span>:message code=<span class="hljs-string">"member.list.title"</span>/>
회원목록
출력할 리스트가 없습니다. 등록
등록
아이디
패스워드
이름
가입일자
${member.id }
${member.passwd }
${member.name }
selectList.jsp가 에러가 나지만 이클립스 오류이다
updateForm.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<<span class="hljs-attribute">spring</span>:message code=<span class="hljs-string">"member.update.title"</span> />
member1 테이블에 레코드 수정 예제
아이디 : ${memberCommand.id}
패스워드 :
이름:
공통 작업을 할경우에 공유 할수 있는 정보는 applicationContext.xml에 명시한다
JdbcTemplate 에서 주로 사용하는 메소드는 update(insert delete update) 한건의 레코드는 queryForObject
?의 문자열을 넘길때는 Object[] 배열을 이용
단지 목록을 처리할때 한건의 레코드는 RowMapper를 사용
'JSP > Spring' 카테고리의 다른 글
Spring DB 연동 회원가입 Mybatis (5) | 2012.03.26 |
---|---|
스프링에 대한 글 (0) | 2012.03.25 |
Spring Tiles 레이아웃 (0) | 2012.03.07 |
AbstractPdfView 클래스를 이용한 PDF 다운로드 구현(PDF 만들기) (0) | 2012.03.07 |
LocaleChangeInterceptor를 이용한 Locale 변경(국제화) (0) | 2012.03.07 |