728x90

 

1. MyBatis Mapper XML 파일 설정방법

- 2가지 방법이 존재함

1) MyBatis Config 파일에서 설정하는 방법
2) Root Application Context 파일에서 설정하는 방법
(자세한사항: https://bigfat.tistory.com/98 [Bigfat])

2. MyBatis

DB연결하기

 

https://araikuma.tistory.com/473

 

 

3. JNDI는 무엇?

https://soul0.tistory.com/286

 

JNDI는 톰캣 SERVER.XML에 설정이 되어있어야함

<Context docBase="" path="" reloadable="true">
        <Resource name="jdbc/IMARC" auth="Container" type="javax.sql.DataSource"                
        driverClassName="oracle.jdbc.driver.OracleDriver" 
                             url="jdbc:oracle:thin:@XXX.XXX.XXX.X:XXX:XXXX" 
                  username="XXXX" password="XXXX maxActive="20" maxIdle="10" maxWait="10000" />
</Context>

출처: https://beans.tistory.com/72 [The Winner Takes it All]

 

 

 

Reference

https://bigfat.tistory.com/98

https://hunit.tistory.com/200

https://soul0.tistory.com/286

https://araikuma.tistory.com/473

 

 

728x90
728x90

1. MyBatis는?

- 기존 JDBC코드는 Connection과 Statement를 통해 쿼리를 전송하면 연결받고 Close하는 방식을 사용.

 ==> 이를 프레임워크화를 하여 캡슐화를 한것이 mybatis. 

- JDBC 코드를 간편하게 사용할 수 있고 SQL문장과 프로그래밍 코드가 분리되어 있어 사용하는데 있어 편리

- 또한 라이브러리를 통해 매개변수를 전달하고 결과를 추출하는 일이 간단히 처리가능 


2. iBATIS -> MyBatis : 이름 변경의 이유?

Apache Proejct팀이 iBATIS를 ~2.3까지 개발 하였음.

이후 해당 팀이 google code 팀으로 이동하면서, 이름을 MyBatis로 변경하여 2.5부터 개발 진행중.

 

3. 차이점

1) Java 요구사항 차이점

iBATIS : JDK 1.4 이상 가능
MyBatis : JDK 1.5 이상 가능(MyBatis 3.2 이상 버전은 JDK 1.6 이상 요구)

 

2) 패키지 내부 구조 변경

iBATIS : com.ibatis.*

MyBatis : org.apache.ibatis.*

 

3) sqlMap.xml 내부구조 변경

iBATIS: parameterMap

MyBatis: parameterType (dtd 변경 - http://mybatis.org/dtd/mybatis-3-mapper.dtd) 

 

4) pom.xml 설정

<!-- iBATIS pom.xml -->
<dependency>
    <groupid>org.apache.ibatis</groupid>
   <artifactid>ibatis-sqlmap</artifactid>
   <version>2.3.4.726</version>
</dependency>
<!-- MyBatis pom.xml -->
<dependency>
    <groupid>org.mybatis</groupid>
   <artifactid>mybatis</artifactid>
   <version>3.4.5</version>
</dependency>
 
<dependency>
   <groupid>org.mybatis</groupid>
   <artifactid>mybatis-spring</artifactid>
    <version>1.3.1</version>
</dependency>

(상위버전이 필요하다면 maven repository에서 확인)

5) 네임스페이스 방식 변경

iBATIS : <sqlMap namespace=”User”>

MyBatis : <mapper namespace=”myBatis.mapper.UserMapper”>

네임스페이스 사용은 필수, userStatementNameSpace설정 제거



 

 

Reference

https://sdevstudy.tistory.com/18

https://uwostudy.tistory.com/19

https://hunit.tistory.com/200

 

728x90
728x90


1. 단축키 없이 마우스 오른쪽 클릭 후 컨텍스트 메뉴에서 Source>Generate Getters and Setters 를 선택

마우스 오른쪽 클릭 후 나오는 컨텍스트 메뉴의 Source 옆에 나와 있듯이 아래 컨텍스트 메뉴를 띄울 때는 Alt + Shift + S 사용합니다.

그리고 아래 컨텍스트 메뉴에서 Generate Getters and Setters 를 실행하기 위해 R 을 눌러줍니다.

Alt + Shift + S  -> R



그리고나면 아래와 같이 Generate Getters and Setters 다이얼로그가 나옵니다.




현재 Test 라는 필드에 대한 getter setter 를 만들려고 합니다.

다이얼로그 오른쪽 버튼에는 접근 가능한 단축키가 적혀져 있네요.
Alt + A (모든 필드에 대한 getter setter 선택)
Alt + D (모든 필드에 대한 getter setter 선택 해제)
Alt + G (모든 필드에 대한 getter 선택 해제)
Alt + l (모든 필드에 대한 setter 선택 해제)

별도로 지정하고 싶다면 마우스를 사용해서 하나씩 체크 해 주셔야 합니다.

여기서 엔터를 치면 OK 버튼으로 Selection 이 가있지 않기 때문에 다이얼로그 창이 OK 되어 닫히지 않습니다.

OK 로 Selection 이 가게 하기 위해서 Alt + S 를 눌러줍니다.
그리고 엔터를 치면 모든 과정이 단축키를 통해 getter setter 를 추가 할 수 있게 됩니다.

추가로 Alt + Shift + S 로 유용하게 사용 할 수 있는 기능이 implemet  override 를 할 메소드를 찾아서 추가하는 기능입니다.
Alt + Shift + S 를 누르고  나서 V 를 누르면 위의 기능을 사용 할 수 있습니다.

결론적으로 모든 필드에 대한 getter setter 추가를 단축키로 끝내는 순서는 아래와 같습니다.

 Alt + Shift + S -> R -> Alt + A -> Alt + S -> Enter



출처: https://byeonely.tistory.com/144 [Intelligent Blog of Byeon]

728x90
728x90

 

스트러츠2 가이드 문서 : http://struts.apache.org/2.x/docs/guides.html

 

 

--------------------------------------------------------------------------------------------------------------------------------

 

 

<기본 설정 필요 파일>

* Apache Struts 2.3.15 GA :  http://struts.apache.org/

==> Apache Struts 2.3.15 GA 압축 파일 내의 아래의 5가지 Jar 파일을 WEB-INF/lib 폴더에 추가
- struts2-core-x.x.x.jar : Struts 2 
 Core library.
- xwork-core-x.x.x.jar : 
웹 워크와 통합
- ognl-x.x.x.jar : OGNL , Struts2
를 위한 EL 이다.
- commons-logging-x.x.x.jar : log4j 
와 같은 로깅을 위한 라이브러리.
- freemarker-x.x.x.jar : UI 
태크 템플릿을 위한 것.

 

 

  • web.xml : 웹 애플리케이션의 배치스크립터(DD). Struts2가 요청을 수렴할 수 있도록 DD에 필터 등록.
  • struts-default.xml : 프레임워크 코어 라이브러리인 struts2-core-버전.jar미리 정의 되어 있는 파일.  Struts.xml의 설정을 상당히 줄이도록, 모든 디폴트값들이 설정되어있음.
  • struts.xml : 웹 애플리케이션내의 처리 흐름을 설정하는 파일

 

--------------------------------------------------------------------------------------------------------------------------------

 

 

1. web.xml

- web.xml은 URL 확장자에 따라 FilterDispatcher에 의해서 액션을 실행하기 위한 환경을 구축한다. 
  즉, 모든 사용자의 요청은 FilterDispatcher Class 를 거쳐간다. 해당 파일은 WEB-INF 폴더 내에 위치해야함.

 

<!-- 스트럿츠는 필터가 서블릿보다 먼저 동작하여 요청을 받는다  -->
<filter>
    <filter-name>struts</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
    
<!-- 모든요청을 필터가 받는다. -->
<filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 

2. struts.xml

- struts.xml은 실행 후 결과를 처리할Result 와 매핑을 설정한다. 해당파일은 프로젝트/src 폴더(Java Resources) 내에 위치한다.

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
<struts>
  <!-- 1.기본연결 -->
  <package name="tutorial" extends="struts-default">
  	<action name="helloWorld" class="tutorial.HelloWorld">
  		<result name="success">/helloWorld.jsp</result>
  	</action>
  </package>
  
   <!--<include file="struts-test.xml"/>  -->
   
</struts>

 

1) <include />

Struts1에서는 하나의 struts-config.xml 파일만 지원했지만 Struts2에서는 여러개의 설정파일을 역할별로
나눠서 설정할 수 있음. 그리고  요소를 이용해 하나의 설정파일에 포함 시킴.
파일의 위치는 ClassPath상의 경로.

 

2) <constant />
이 요소는 상수를 설정할 때 쓰입니다. 상수는 Struts2의 작동 방식을 결정짓는 값 입니다.
상수의 설정은 struts.xml 뿐만 아니라 struts.properties, web.xml 등.. 에서도 할 수 있습니다.
<constant /> 요소의 속성은 다음과 같습니다.

- name : 상수의 이름을 지정 합니다.
- value : 상수의 값을 지정 합니다.

설정 가능한 상수는 struts2-core-버전.jar 의 org.apache.struts2 패키지의 default.properties 파일에 나와 있는데 자세한 상수 설정에 대해서는 Struts2 상수설정 에서 다루겠습니다.

3) <package />
패키지는 result, interceptor, action 등을 논리적인 단위로 그룹화 하는데 사용 합니다.
struts.xml 파일 설정중에 대부분의 설정은 패키지 안에서 이루어 집니다.


4) <interceptors />
Interceptor는 AOP와 같은 개념으로 액션 실행 전후로 실행되는 모듈입니다.
파라미터값을 자동으로 저장, 로깅, 파일 업로드, 유효성 검사, 보안 등 다양한 Interceptor가 존재 합니다.
이 모든 Intercpetor는 struts-default.xml 파일에 모두 정의가 되어 있습니다. 
따라서 <interceptors /> 요소는 <interceptor-stack /> 요소를 이용해 사용자 정의 스택을 구성할 경우를 
제외 하고는 사용할 일이 없으며 단지<interceptor-ref /> 요소를 이용해 가져다 쓰기만 하면 됩니다.
다음은 struts-dafault.xml에 정의된 <interceptors /> 요소중 일부분 입니다.

 

 

 

 

Reference

https://firedev.tistory.com/entry/Struts-스트러츠2-설정-strutsxml-interceptor

https://kimseunghyun76.tistory.com/295

https://gusfree.tistory.com/1029

 

728x90

+ Recent posts