Fairy ' s

[Spring] 게시판 / 함수 & 개념 정리 #2 본문

Study/Spring

[Spring] 게시판 / 함수 & 개념 정리 #2

berafairy 2023. 1. 2. 17:08

개념 정리 #2

 


 

SqlSession 클래스 (MemberDAOImpl.java) // 참고

  • SqlSession을 통해 매핑구문을 실행하거나 커밋 또는 롤백을 할 수 있음
  • Mybatis 연동을 해서 사용할 수 있음
  • 제공하는 메서드 종류
메서드 기능
List selectList(query_id) id에 대한 select 문 실행 후, 여러 레코드를 List로 반환
List selectList(query_id, 조건) id에 대한 select 문 실행, 사용되는 조건도 전달
T selectOne(query_id) id에 대한 select 문 실행 후, 지정된 타입으로 한 개의 레코드 반환
T selectOne(query_id, 조건) id에 대한 select 문 실행, 사용되는 조건도 전달
Map<K,V> selectMap(query_id, 조건) id에 대한 select 문 실행,사용되는 조건도 전달. Map 타입으로 레코드 반환
int insert(query_id, Object obj) id에 대한 insert문 실행, 객체의 값을 테이블에 추가
int update(query_id, Object obj) obj 객체의 값을 조건문의 수정 값으로 사용, id에 대한 update문 실행
int delete(query_id, Object obj) obj 객체의 값을 조건문의 조건 값으로 사용, id에 대한 delete문 실행

 

  • 사용 방법
// root-context.xml

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
     <property name="dataSource" ref="dataSource"></property>
     <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
     <property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
     <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>



// BoardDAOImpl.java

import org.apache.ibatis.session.SqlSession;

@Repository
public class BoardDAOImpl implements BoardDAO {

	@Inject
	private SqlSession sqlSession;
    
	@Override
	public void write(BoardVO boardVO) throws Exception {
		sqlSession.insert("boardMapper.insert", boardVO);
	}
    ...
}
  • sqlSession.insert("boardMapper.insert", boardVO); 는 boardMapper.xml에서 id가 insert인 sql문을 실행함 

 

 


DateFormat // 참고

  • 다양한 형태로 날짜를 표현할 수 있음
  • 날짜 표현 종류
  • jsp 파일에서 fmt 사용 시 상단에 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>를 선언해 주어야 함
코드 (DateFormat dateFormat = ) 출력
DateFormat.getDateTimeInstance(DateFormat.FULL); 2023년 1월 1일 일요일
DateFormat.getDateTimeInstance(DateFormat.LONG); 2023년 1월 1일 (일)
DateFormat.getDateTimeInstance(DateFormat.MIDIUM); 2023. 1. 1
DateFormat.getDateTimeInstance(DateFormat.SHORT); 23. 1. 1
  • SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); ◁ 20230101 
  • dateFormat = new SimpleDateFormat("E MMM dd HH:mm:ss", Local.UK); ◁ Sat January 01 9:00:00
// HomeController.java

Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

String formattedDate = dateFormat.format(date);

 

 


Map<String, Object> // 참고

  • String위치 key, Object위치 value. key와 value는 한 쌍, key로 식별하고 value에 값을 넣음
  • key 값은 중복이 불가능하고 동일한 key에 값을 넣을 시 먼저 넣은 값이 적용
  • Map의 주요 메서드 사용 법
메서드 해석
Map.put(key,value); Map 안에 값 넣기
Map.get(key); Map 안의 값 가져오기
Map.size(); Map 크기 확인
Map.replace(key, value); Map 안의 내용 변경
Map.containsKey(key or value); Map 안에 특정 key, value 들었는지 확인
Map.isEmpty(); Map 의 크기가 0인기 확인
Map.remove(key); Map 안의 내용 삭제
Map.getOrDefault(key,default); key가 있으면 value, 없으면 default 호출
Map.putIfAbsent(key, value); key가 없거나 valuer가 null 일때만 삽입
  • 선언 종류
선언 설명
HashMap Map 안에서 key / value 에 따른 순서 없음
TreeMap key 값에 따라 오름차순 정렬
LinkesHashMap 삽입 순서에 따라 정렬
HashTable key / value 에 null을 넣을 수 없음

// HashMap에 대한 더 자세한 정리 !!

 

 


<c:forEach items = "${A}" var = B>

  • JAVA의 for문과 비슷한 기능으로, 받은 "${A}" 값 만큼 반복해 줌
  • var는 B의 이름으로 "${A}"를 선언한 것

 

<c:out value="${A.b}">

  • A에 있는 b를 가져와 출력해줌
  • <c: > 사용 시 jsp파일 상단에 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 를 선언해 주어야 함
// list.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

...
<c:forEach items="${list}" var = "list">
	<tr>
		<td><c:out value="${list.bno}" /></td>
		<td>
			<a href="/board/readView?bno=${list.bno}&page=${scri.page}&perPageNum=${scri.perPageNum}&searchType=${scri.searchType}&keyword=${scri.keyword}"><c:out value="${list.title}" /></a>
		</td>
		<td><c:out value="${list.writer}" /></td>
		<td><fmt:formatDate value="${list.regdate}" pattern="yyyy-MM-dd"/></td>
		<td><c:out value="${list.hit}"/></td>
	</tr>
</c:forEach>

 

 

'Study > Spring' 카테고리의 다른 글

[Spring] Annotation  (0) 2023.01.17
[Spring] 게시판 / 함수 & 개념 정리 #3  (0) 2023.01.06
[Spring] 개발 환경 구축  (0) 2023.01.04
[Spring] 게시판 / 함수 & 개념 정리 #1  (0) 2023.01.02
[Spring] 게시판 / 작동 순서  (0) 2023.01.02
Comments