At line 11 changed 1 line. |
AppFuse uses [Hibernate|http://www.hibernate.org] for its default persistence layer. However, you can install [iBATIS|http://ibatis.apache.org] and use it as an alternative. You can also use them both side-by-side if you so desire. To install iBATIS in AppFuse, view the README.txt in {{extras/ibatis}} (or simply cd into this directory and run __ant install__). The Hibernate version of this tutorial is available [here|CreateDAO]. |
AppFuse는 디폴트로 영속성 레이어를 위해 [Hibernate|http://www.hibernate.org]를 사용한다. 어쨌든, 당신은 [iBATIS|http://ibatis.apache.org]를 설치하고 이것을 대안으로 사용할수 있다. 만약 당신이 원한다면 양쪽다 그것들을 사용할수 있다. AppFuse에서 iBATIS를 설치하기 위해, {{extras/ibatis}}내 README.txt파일을 보라(또는 이 디렉토리로 이동하고, __ant install__를 수행하라). 이 튜토리얼의 Hibernate버전은 [here|CreateDAO_ko]이다.. |
At line 13 changed 4 lines. |
!Font Conventions (work in progress) |
;:Literal strings intended to be executed at the command prompt look like this: __ant test-all__. |
;:References to files, directories and packages which exist in your source tree: <font size="2">{{build.xml}}</font>. |
;:%%(color: blue)''And suggestions for how to do stuff in the "Real World" are in blue italics.''%% |
! 폰트 규칙(작업중..) |
;:명령창에서 수행되는 경향이 있는 문자열은 다음과 같이 보일것이다: __ant test-all__. |
;:소스 트리에 존재하는 파일, 디렉토리 그리고 패키지에 대한 참조: <font size="2">{{build.xml}}</font>. |
;:%%(color: blue)'' 그리고 "실제 세상"에서 채우는 방법을 위한 제안은 파란색의 이탤릭체이다..''%% |
At line 18 changed 1 line. |
Let's get started on creating a new Object, DAO and Test in AppFuse's project structure. |
AppFuse의 프로젝트 구조에서 새로운 객체, DAO 그리고 테스트를 생성하여 시작해보자. |
At line 20 changed 7 lines. |
!Table of Contents |
* [1] Create a new Person POJO |
* [2] Create a new database table and mapping file |
* [3] Create a new DaoTest to run JUnit tests on the DAO |
* [4] Create a new DAO to perform CRUD on the object |
* [5] Create a bean definition for the PersonDao |
* [6] Run the DaoTest |
!목차 |
* [1] 새로운 Person POJO생성하기. |
* [2] 새로운 데이터베이스 테이블과 맵핑 파일 생성하기 |
* [3] DAO에서 JUnit테스트를 수행하기 위해 새로운 DaoTest 생성하기 |
* [4] 객체에서 CRUD를 수행하기 위해 새로운 DAO 생성하기 |
* [5] PersonDao를 위해 bean정의 생성하기 |
* [6] DaoTest 수행하기 |
At line 28 changed 1 line. |
!!Create a new POJO, table and SQLMap [#1] |
!!새로운 POJO, 테이블 그리고 SQLMap을 생성하기 [#1] |
At line 30 changed 1 line. |
The first thing you need to do is create an object to persist. Let's create a simple "Person" object (in the {{src/dao/**/model}} directory) that has an id, a firstName and a lastName (as properties). |
해야할 필요가 있는 첫번째 것은 지속하기 위한 객체를 생성하는 것이다. id, firstName 그리고 lastName(프라퍼티로)을 가지는 간단한 "Person"객체({{src/dao/**/model}} 디렉토리내)를 생성하자. |
At line 32 changed 1 line. |
%%note __NOTE:__ Copying the Java code in these tutorials [doesn't work in Firefox|http://raibledesigns.com/page/rd?anchor=java2html_plugin_for_jspwiki_causes]. A workaround is to CTRL+Click (Command+Click on OS X) the code block and then copy it.%% |
%%note __노트:__ 이 튜토리얼내 자바코드를 복사하는 것은 [Firefox에서는 작동하지 않는다|http://raibledesigns.com/page/rd?anchor=java2html_plugin_for_jspwiki_causes]. 대안은 코드블럭을 CTRL+Click하고 복사하는 것이다. %% |
At line 51 changed 1 line. |
This class should extend [BaseObject|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/model/BaseObject.java.html], which has 3 abstract methods: (equals(), hashCode() and toString()) that you will need to implement in the Person class. The first two are required by Hibernate. The easiest way to do this is using [Commonclipse|http://commonclipse.sf.net]. More information on using this tool can be found on [Lee Grey's site|http://www.leegrey.com/hmm/2004/09/29/1096491256000.html]. Another Eclipse Plugin you can use is [Commons4E|http://commons4e.berlios.de/]. I haven't used it, so I can't comment on its functionality. |
이 클래스는 Person클래스에서 구현할 필요가 있는 3개의 추상 메소드(equals(), hashCode() and toString())를 가지는 [BaseObject|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/model/BaseObject.java.html]를 확장한다. 첫번째 두개는 Hibernate에 의해 요구된다. 이것을 하는 가장 쉬운 방법은 [Commonclipse|http://commonclipse.sf.net]를 사용하는 것이다. 이 툴을 사용하는 것에 대한 더 많은 정보는 [Lee Grey의 사이트|http://www.leegrey.com/hmm/2004/09/29/1096491256000.html]에서 볼수 있다. 당신이 사용할수 있는 또 다른 Eclipse플러그인은 [Commons4E|http://commons4e.berlios.de/]이다. |
At line 53 changed 1 line. |
;:''If you're using [IntelliJ IDEA|http://www.jetbrains.com/idea], you can generate equals() and hashCode(), but not toString(). There is a [ToStringPlugin|http://www.intellij.org/twiki/bin/view/Main/ToStringPlugin] that works reasonably well.'' |
;:''만약 [IntelliJ IDEA|http://www.jetbrains.com/idea]를 사용한다면, equals() 과 hashCode()를 생성할수 있지만, toString()은 생성할수 없다. 여기엔 잘 작동하는 [ToStringPlugin|http://www.intellij.org/twiki/bin/view/Main/ToStringPlugin]이 있다.'' |
At line 55 changed 1 line. |
%%note __NOTE:__ If installing these plugins doesn't work for you, you can find all of these methods in the Person.java object that's used to test AppGen. Just look in ''extras/appgen/test/dao/org/appfuse/model/Person.java'' and copy and paste the methods from that class.%% |
%%note __노트:__ 만약 설치하고 이 플러그인이 작동하지 않는다면, AppGen을 테스트하기 위해 사용되는 Person.java내 이러한 메소드 모두를 찾을수 있다. ''extras/appgen/test/dao/org/appfuse/model/Person.java'' 를 보고 클래스로부터 메소드를 복사하고 붙여라..%% |
At line 57 changed 3 lines. |
!!Create a new database table and mapping file [#2] |
Now that you have this POJO created, you need to create a "person" database |
table that your POJO will map to. Add the following to {{metadata/sql/mysql-create-tables.sql}}: |
!! 새로운 데이터베이스 테이블과 맵핑파일 생성하기 [#2] |
이 POJO가 생성된 지금, 당신은 POJO가 맵핑할 "person" 데이터베이스 테이블을 생성할 필요가 있다. {{metadata/sql/mysql-create-tables.sql}}에 다음을 추가하라. |
At line 68 changed 2 lines. |
Then run "ant setup-db". This will create the person table for you. To create |
the SQL-to-Java mapping file, create {{PersonSQL.xml}} in {{src/dao/**/ibatis/sql}}. It should contain the following XML: |
그리고 나서 "ant setup-db"를 수행한다. 이것은 당신을 위해 person테이블을 생성할 것이다. SQL-대-자바 맵핑파일을 생성하기 위해, {{src/dao/**/ibatis/sql}}내 {{PersonSQL.xml}}를 생성하라. 이것은 다음을 포함할것이다. |
At line 136 changed 1 line. |
%%note __NOTE:__ Since iBATIS [doesn't support JDBC 3.0's getGeneratedKeys()|http://issues.apache.org/jira/browse/IBATIS-142], you need to use a <selectKey> element that's specific to your database. In this example, the <selectKey> in <insert id="addPerson"> is MySQL's syntax. Of course, if you don't care about fetching the primary key after an object is inserted, you won't need this.%% |
%%note __노트:__ iBATIS가 [JDBC 3.0의 getGeneratedKeys()를 지원하지 않기|http://issues.apache.org/jira/browse/IBATIS-142] 때문에, 데이터베이스에 명시하는 <selectKey> 요소를 사용할 필요가 있다. 이 예제에서, <insert id="addPerson">내 <selectKey>는 MySQL의 문법이다. 물론, 객체가 삽입된후에 기본키를 가져오는 것을 다루지 않는다면, 이것이 필요하지 않을것이다. %% |
At line 138 changed 1 line. |
Now you'll need to notify iBATIS that a new SQLMap exists. Open {{src/dao/**/ibatis/sql-map-config.xml}} and add the following: |
지금 당신은 새로운 SQLMap가 존재하는 것을 iBATIS에 알릴필요가 있을것이다. {{src/dao/**/ibatis/sql-map-config.xml}}를 열고 다음을 추가하라. |
At line 142 changed 1 line. |
!!Create a new DaoTest to run JUnit tests on your DAO [#3] |
!! DAO에서 JUnit테스트를 수행하기 위해 새로운 DaoTest 생성하기 [#3] |