728x90

 

MyBatis 설정 정보 파일 세팅

1)class의 alias(별칭) 설정

2)DB 연결 설정

3)sql 구문 경로 설정

 

기본적으로 여러 매퍼파일과 여러 환경들이 존재할 수 있기 때문에 각 태그에는 주식별자(PK) 개념의 역할을 하는 id속성 같은 것들이 있고, 

상위 태그 안에 관련 하위태그가 있는 방식이다

 


1. <environments>

Database 연결 설정 정보
실질적인 데이터는 여기  environments태그 안에 많이 담김

default 속성값 : environments 아래 하위 태그인 연결할 환경(environment)이 많은데 어떤 녀석을 기본값으로 부를지 지정

<environments default="development">
	<environment id="development">
	</environment>
</environments>

 

1)<environment>

id속성 : environment 구분

2)<transactionManager

트랜잭션(커밋,롤백)을 누가 관리할 것인지 설정

<environment id="development">
			<transactionManager type="JDBC"/>
</environment>

 

3)<dataSource>

ConnectionPool 사용 여부

<environment id="development">
	<transactionManager type="JDBC"/>
	<dataSource type="POOLED">
</environment>

dataSource type에 들어가는 속성값 3가지

1)UNPOOLED

db에 대한 요청이 올 때마다 실시간으로 커넥션을 만드는 것. 미리 커넥션 객체를 만들어 놓는 것이 아니기 때문에 좀 느릴 수 있음


 2)POOLED

미리 커넥션 객체를 만들어 놓고 가져다 쓰는 것. 커넥션 객체를 미리 만들어 놓고 관리하여 요청이 올 때마다 pool에서 꺼내서 재사용
  Web applicaion에서 많이 쓰는 방식

※ static이랑 상관없이 jdbc 자체가 pooled방식


 3)JNDI

외부에서 관리하는 방식


  

4)<property>

DB에 연결할 DB 정보와 계정정보

각각 driver, url 정보를 넣고 username과 password에는 연결할 db의 계정명과 비번을 넣으면 된다

아래의 방식은 EL을 이용해 외부에 따로 properties파일에 정보를 넣어놨고, 그냥 바로 value에다가 적어도 된다

    <property name="driver" value="${driver}"/> <!-- el형식. jsp에서 쓴 el이랑 똑같은 el은 아닌 걸 주의. 단순 expression language일 뿐 함수 사용이나 그런게 안된다는 의미 -->
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>

 

 

 

2.<mappers>

mappers등록

쿼리문을 많이 쓸 것이기 때문에 mappers등록하여 어떤 매퍼를 끌어올지를 알려주게 하는 설정

"mappers..." 앞에 /는 있어도 없어도 됨

	<mappers>
		<mapper resource="mappers/member-mapper.xml"></mapper>
		<mapper resource="/mappers/board-mapper.xml"/>
	</mappers>

 

 

 <MyBatis Configuration파일의 태그 순서>

설정 파일의 최상위 태그인 <configuration></configuration> 안에

태그들이 아래의 순서대로 있어야 에러없이 잘 작동한다


 (properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?, reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)

728x90
반응형
728x90

 

jsp:param

jsp:include, jsp:forward의 하위 요소로 사용되며 해당 페이지에 전달할 값을 기록할 때 사용

<jsp:param **name**=”파라미터 변수” **value**=”값”/>

 

jsp:setProperty

Java객체 사용 시 Setter와 동일한 역할

빈(bean)의 속성에 값을 설정하는 태그

    - name : jsp:useBean 태그에 정의된 빈(bean) 인스턴스 이름

       ex) useBean의 id속성값에서 객체(여기서는 vo클래스)를 호출해오고

    - property : 값을 설정하고자 하는 빈(bean) 속성의 이름

                     설정 시, servletRequest안의 모든 인자들 중 빈(bean) 속성과 데이터 형이 일치하는 것을 찾아 각각의 속성                         들을 각각의 인자 값으로 설정함

                ex) vo객체 안에 값을 저장할 setter명을 지정하기

     - value : 빈(bean) 속성에 설정할 값

    - param : 뷰에서 보낸 데이터를 받아오는 역할

<jsp:setProperty name = “빈 이름” property=”프로퍼티 명” value=”저장할 값”/〉

 

jsp:getProperty

Java객체 사용 시 Getter와 동일한 역할

빈의 속성값읕 얻는데 사용

name : 속성을 얻고자 하는 빈 인스턴스의 이름

property : 얻고자 하는 속성의 이름

<jsp:getProperty name = “빈 이름” property=”프로퍼티 명”/〉

 

jsp:plugin 액션 태그

자바 애플릿 또는 자바빈즈 컴포넌트를 클라이언트로 다운받아 사용할 수 있도록

브라우저에 맞는 HTML 코드를 생성해주는 역할

서버 측에서 사용되는 컴포넌트의 경우 서버에 부하를 주게 되는데 plugin 액션 태그를 이용해 서버의 부하를 줄여 줄 수 있다

<jsp:plugin type=”플러그인 타입” codebase=”클래스 파일 위치” code=”불러올 클래스 파일” width=”가로” height=”세로”>
	<jsp:params>
		<jsp:param name=”파라미터이름” value=”파라미터값”/> 
	<jsp:params>
</jsp:plugin〉

 

728x90
반응형
728x90

jsp:useBean

    - param 속성

 

setProperty

 - name속성 : useBean의 id속성값에서 객체(여기서는 vo클래스)를 호출
 - property속성 : vo객체 안에 값을 저장할 setter명을 지정해준 것
 - param : 뷰에서 보낸 데이터를 받아오는 역할

 

getProperty

Java객체 사용 시 Getter와 동일한 역할

빈의 속성값읕 얻는데 사용

    - name : 속성을 얻고자 하는 빈 인스턴스의 이름

    - property : 얻고자 하는 속성의 이름

 

 

<h2> 1.표준 액션 태그  useBean으로 vo클래스 객체 불러오기</h2>
	
	<jsp:useBean id="per" class="action.model.vo.Person"></jsp:useBean>
	
	<!-- set으로 a값 넣기 : value속성값 -->
	<jsp:setProperty property="name" name="per" value="a"/>
	
	<span>jsp:useBean & getProperty로 vo클래스 값 가져오기 :</span> 
	<jsp:getProperty property="name" name="per"/><br><br>

<br><hr><br>
<h2> 2.표준 액션 태그 중 useBean을 사용하여 vo클래스에 데이터 초기화</h2>
	<jsp:useBean id="p" class="action.model.vo.Person" scope="request"/>
	<jsp:setProperty property="name" name="p" value="b"/>
	
	<span>jsp:useBean & getProperty로 vo클래스 값 가져오기 : </span>
	<jsp:getProperty property="name" name="p"/><br><br>
	
	
	이름 : <jsp:getProperty property="name" name="p"/><br> 
	성별 : <jsp:getProperty property="gender" name="p"/><br>
	나이 : <jsp:getProperty property="nai" name="p"/>

<br><hr><br>
<h2> 3.jsp 표준 액션태그 중 useBean의 param속성 사용하기</h2>
<% request.setCharacterEncoding("UTF-8"); %> <!-- 자바코드 끌어오는 거니 끝에 세미콜론; -->
	<jsp:useBean id="p3" class="action.model.vo.Person" scope="request">
		<!-- 1)param속성 사용 -->
		<jsp:setProperty property="gender" name="p3" param="gender"/>
		<jsp:setProperty property="nai" name="p3" param="nai"/>
		<jsp:setProperty property="name" name="p3" />
		<!-- 
			jsp:setProperty에서 
				 name속성 : useBean의 id속성값에서 객체(여기서는 vo클래스)를 호출해오고 
				 property속성 : vo객체 안에 값을 저장할 setter명을 지정해준 것
				 param : 뷰에서 보낸 데이터를 받아오는 역할
		 -->
	</jsp:useBean>
		이름 : <jsp:getProperty property="name" name="p3"/><br>
		성별 : <jsp:getProperty property="gender" name="p3"/><br>
		나이 : <jsp:getProperty property="nai" name="p3"/><br>

<br><br><br>
</body>
</html>
728x90
반응형

'small steps > 1일 1코딩 - 코딩을 내 몸처럼' 카테고리의 다른 글

[1일 1코딩]  (0) 2022.05.30
[1일 1코딩]  (0) 2022.05.29
[1일 1코딩][JSP] 표준액션태그 <jsp:useBean>  (0) 2022.05.27
[1일 1코딩][JSP] 표준 액션 태그  (0) 2022.05.26
[1일1코딩]  (0) 2022.05.24
728x90

 

 

에러메시지

java.lang.NosuchmethodError : action.model.vo.Person.getAge()

 - action부터 getAge()까지는 패키지명.게터명

 

상황

jsp 표준 액션태그의 property값이 어디에서 값을 참조해오는지 알아보기 위해 model.vo에서 필드값, 게터명, 생성자의 this 등 바꿔보는 중에 getAge()를 바꾸자 에러가 남

 

 

 

원인

표준 액션태그의 property값이 참조해올 getter의 이름명을 바꿔서 찾을 수 없기에 발생

 

해결

property의 속성값을 끌어올 값의 getter명과 일치 시킨다

 

 

 

728x90
반응형

+ Recent posts