MyBatis

Size: px
Start display at page:

Download "MyBatis"

Transcription

1 MyBatis

2 목차 mybatis 웹애플리케이션개발하기 설치하기 MYBATIS 설정파일 매퍼 XML과매퍼애노테이션 트랜잭션관리 좀더복잡한매핑규칙정의 17

3 1.MyBatis 시작하기

4 1.1 mybatis 웹애플리케이션개발하기 이전장에서는간단한 mybatis 애플리케이션을만들었고, Junit 테스트코드를통해실행해봤다. 실행하는과정에출력되는로그를통해 mybatis 가내부에서 JDBC API 를어떻게활용하고있는지도대략짐작가능했다. 간단한애플리케이션코드에서는 XML 에서매핑구문을기술하는것과 mybatis 자바 API 를사용해서실제호출하는코드를본것이다. 이간단해보인코드가사실은실제 mybatis 를활용하는대부분의코드에서사용될수있으며그비율은프로젝트마다다르겠지만 50% 가넘을수도있다는점에서독자는 mybatis 의 50% 이상을이미습득했다고할수있다. 이제부터는본격적으로웹애플리케이션을작성하는방법을볼것이다. mybatis 코드의경우, 앞서본예제와크게다르지않다. 먼저본샘플에서는 Spring MVC + mybatis 단독 형태의예제임을먼저알려드린다 설치하기 A. 수동설치 mybatis 홈페이지의자바페이지인 에서압축파일을다운로드한다. 압축파일을풀어보면 mybatis-x.x.x.jar 형태의 jar 파일이있는데. 이파일을 WEB-INF/lib 밑에두면사실상설치는끝난다. 이글을작성하는시점에최신버전은 이라 jar 파일명은 mybatis jar 이다. B. maven 이용 dependency 에서 groupid 는 org.mybatis 이고, artifactid 는 mybatis 로설정하면된다. <dependency> <groupid>org.mybatis</groupid> <artifactid>mybatis</artifactid> <version>3.1.0</version> </dependency> C. ivy 이용 maven 과유사하다. org 는 org.mybatis 이고, name 은 mybatis 이다. 4 MyBatis

5 <dependency org="org.mybatis" name="mybatis" rev="3.1.0"/> mybatis 설정파일 public Integer deletecomment(long commentno) { SqlSession sqlsession = getsqlsessionfactory().opensession(); try { String statement = "kr.pe.ldg.mybatis.example1.repository.mapper.commentmapper.deletecomment"; int result = sqlsession.delete(statement, commentno); if (result > 0) { sqlsession.commit(); return result; finally { sqlsession.close(); mybatis 설정파일에서설정가능한항목을파악하기위해서가장간단한방법은 DTD 를보는것이다. DTD 의위치는 이다. 설정가능한항목은 10 개다. A. properties 많은프로젝트에서는개발장비와실제리얼장비로구분해서개발하는경우가많다. 이러한경우에설정에대해서는외부프로퍼티파일로분리하고서버별로프로퍼티파일을선택해서배포하는형태를주로택한다. mybatis 의 properties 는외부프로퍼티파일을읽어서설정파일내변수처럼사용할수있도록한다. 외부프로퍼티파일의설정을아래와같이하고파일명은 mybatis.properties 로정했다. jdbc.url=jdbc:mysql://localhost:3306/mybatis_example jdbc.driver= com.mysql.jdbc.driver jdbc.username=mybatis jdbc.password=mybatis 대개의경우, properties 의 resource 속성에파일을지정하면된다. resource 속성은클래스패스기준으로프로퍼티를찾는다. <properties resource="mybatis.properties"></properties> 모든설정을외부프로퍼티파일에둔다면상관없지만프로퍼티중에일부는서버별로변경없이사용할수있다. 그러한경우아래처럼설정하면된다. <properties resource="mybatis.properties"> <property name="jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="jdbc.username" value="mybatis"/> <property name="jdbc.password" value="mybatis"/> </properties> 5 MyBatis

6 만약에프로퍼티파일을클래스패스기준이아닌절대경로로잡아야할경우, url 속성을사용하면된다. <properties url="file:d:\mybatis.properties"></properties> 이렇게설정한후사용할때는 ${key 형태로사용하면된다. 위프로퍼티파일의내용을사용한다면아래와같다. <property name="url" value="${jdbc.url" /> B. settings settings 에서설정되는각종프로퍼티는 mybatis 자바 API 가작동할때의규칙을정의한다. mybatis 가마이너업그레이드를진행하면서추가되는항목도종종있고몇가지항목은 JDBC 드라이버에따라지원되지항목도있다. 1. cacheenabled : 매퍼 XML 또는매퍼애노테이션에서설정하는캐시설정을전체기본설정으로가져갈지에대한옵션이다. mybatis 이기본캐시는분산캐시가아니라로컬캐시라서버가여러대인경우데이터변경에대해캐시에반영하는게문제가될수있다. 물론 Cacheonix 와같은분산캐시가개발중에있긴하지만 mybatis 의기본캐시가아니라서캐시에대해서는신중히결정해야한다. 디폴트는 true 이다. 2. lazyloadingenabled : 늦은로딩사용여부에대한옵션이다. 디폴트는 true 이다. 3. aggressivelazyloading : 점진적인늦은로딩사용여부에대한옵션이다. 디폴트는 true 이다. 4. multipleresultsetsenabled : 한개의구문에서여러개의결과셋허용여부에대한옵션이다. 드라이버에따라지원여부가확인해서사용해야한다. 디폴트는 true 이다. 5. usecolumnlabel : 칼럼명대신칼럼라벨사용여부에대한옵션이다. 디폴트는 true 이다. 6. usegeneratedkeys : 생성키사용여부에대한옵션이다. 디폴트는 false 이다. 7. automappingbehavior : 자동매핑에대한옵션이다. 선택가능한값은 NONE, PARTIAL, FULL 인데디폴트는 PARTIAL 이다. 자동매핑에대해서는뒤에서좀더다뤄보도록한다. 8. defaultexecutortype : 디폴트실행타입옵션이다. 선택가능한값은 Statement 객체를재사용하지않는 SIMPLE, PreparedStatement 객체를재사용하는 REUSE, Statement 를재사용하고작업을배치로일괄처리하는 BATCH 가있다. 디폴트는 SIMPLE 이다. 9. defaultstatementtimeout : 데이터베이스요청에대한타임아웃설정이다. 대부분의 JDBC 드라이버가자체타입아웃설정이있는데, 이값보다짧게가져가야할경우사용하면된다. 양수로셋팅해야하며디폴트는설정하지않는다. 10. saferowboundsenabled 11. mapunderscoretocamelcase : 테이블칼럼명은대개언더바를통해구분하는데, 자바의코딩컨벤션은 CamelCase 형태를취한다. 이경우언더바형태를 CamelCase 형태로자동매핑할지에대한옵션이다. 이옵션을사용하지않으면서테이블명의칼럼명은언더바로구분하고모델은 CamelCase 를사용할경우쿼리문에별칭을사용하거나별도의결과맵을사용해야한다. 디폴트는 false 이다. 12. localcachescope : 캐시의저장범위를정한다. SqlSession 객체를기준으로캐시할때는 SESSION, 구문별로캐시할때는 STATEMENT 를선택하면된다. 디폴트는 SESSION 이다. 13. jdbctypefornull : 14. lazyloadtriggermethods : defaultstatementtimeout 를제외하면대부분디폴트값을가지고있다. defaultstatementtimeout 도사실은 JDBC 별로디폴트값을가지고있는터라사실상대부분의옵션은디폴트값을가지고있어서그대로사용하면되는셈이다. 즉변경이필요한옵션에대해서만설정을하면되는데필자의경우에는 3 개정도수정해서쓰면대부분의애플리케이션의요구사항을만족할것으로생각한다. 6 MyBatis

7 <settings> <setting name="cacheenabled" value="false"/> <setting name="usegeneratedkeys" value="true"/> <setting name="mapunderscoretocamelcase" value="true"/> </settings> C. typealiases 대부분의모델클래스는패키지경로를함께사용하면굉장히긴문자열이된다. 샘플에서사용한 Comment 모델은패키지경로까지모두표기하면 kr.pe.ldg.mybatis.example1.model.comment 정도이다. 매핑구문의파라미터나결과타입에서작성하려고보면굉장히긴문자열이라종종오타가날수도있고문자열자체가길다보니귀찮은작업임에는충분히짐작하고남을만하다. 이를위해타입별별칭을설정할수있도록한다. <typealiases> <typealias type="kr.pe.ldg.mybatis.example1.model.comment" alias="comment" /> </typealiases> 이렇게설정하고매핑구문에서파라미터나결과타입에 Comment 를사용하면 kr.pe.ldg.mybatis.example1.model.comment 로인식하게된다. ibatis 에서는이렇게 XML 에서만타입별칭을설정할수있었다. 하지만 mybatis public class Comment { 원시타입이나흔하게사용되는자바타입에대해서는 mybatis 내부적으로처리된별칭또한존재한다. 별칭 매핑된타입 _byte _long _short _int _integer _double _float _boolean string byte long short int integer byte long short int int double float boolean String Byte Long Short Integer Integer 7 MyBatis

8 double float boolean date decimal bigdecimal object map hashmap list arraylist collection iterator Double Float Boolean Date BigDecimal BigDecimal Object Map HashMap List ArrayList Collection Iterator D. typehandlers PreparedStatement 에서파라미터를셋팅하거나결과셋을가져올때테이블칼럼각각의값을자바의적절한타입으로셋팅해서 가져오기위해사용한다. mybatis 에서이미정의된타입핸들러들이다. 타입핸들러 자바타입 JDBC 타입 BooleanTypeHandler java.lang.boolean, boolean 어떤호환가능한 BOOLEAN ByteTypeHandler java.lang.byte, byte 어떤호환가능한 NUMERIC 또는 BYTE ShortTypeHandler java.lang.short, short 어떤호환가능한 NUMERIC 또는 SHORT INTEGER IntegerTypeHandler java.lang.integer, int 어떤호환가능한 NUMERIC 또는 INTEGER LongTypeHandler java.lang.long, long 어떤호환가능한 NUMERIC 또는 LONG INTEGER FloatTypeHandler java.lang.float, float 어떤호환가능한 NUMERIC 또는 FLOAT DoubleTypeHandler java.lang.double, double 어떤호환가능한 NUMERIC 또는 DOUBLE BigDecimalTypeHandler java.math.bigdecimal 어떤호환가능한 NUMERIC 또는 DECIMAL StringTypeHandler java.lang.string CHAR, VARCHAR ClobTypeHandler java.lang.string CLOB, LONGVARCHAR NStringTypeHandler java.lang.string NVARCHAR, NCHAR NClobTypeHandler java.lang.string NCLOB ByteArrayTypeHandler byte[] 어떤호환가능한 byte 스트림타입 BlobTypeHandler byte[] BLOB, LONGVARBINARY DateTypeHandler java.util.date TIMESTAMP DateOnlyTypeHandler java.util.date DATE 8 MyBatis

9 TimeOnlyTypeHandler java.util.date TIME SqlTimestampTypeHandler java.sql.timestamp TIMESTAMP SqlDateTypeHandler java.sql.date DATE SqlTimeTypeHandler java.sql.time TIME ObjectTypeHandler Any OTHER, 또는명시하지않는경우 EnumTypeHandler Enumeration Type VARCHAR 문자열호환타입. EnumOrdinalTypeHandler Enumeration Type 위치가저장된것과같은어떤호환가능한 NUMERIC 또는 DOUBLE 대부분의경우이미정의된타입핸들러를사용하면된다. 별도의타입핸들러를만들기위해서는 org.apache.ibatis.type.basetypehandler<t> public class ExampleTypeHandler extends BaseTypeHandler<String> public void setnonnullparameter(preparedstatement ps, int i, String parameter, JdbcType jdbctype) throws SQLException { ps.setstring(i, public String getnullableresult(resultset rs, String columnname) throws SQLException { return public String getnullableresult(resultset rs, int columnindex) throws SQLException { return public String getnullableresult(callablestatement cs, int columnindex) throws SQLException { return cs.getstring(columnindex); 구현체를만들어서타입핸들러를명시하는방법은두가지가있다. typehandler 를사용하는방법과 package 를통해해당패키지내타입핸들러를자동검색하게하는방법이다. 단 package 를사용해서자동검색하는방식은애노테이션으로명시한타입핸들러만검색이된다. <typehandlers> <typehandler handler="kr.pe.ldg.mybatis.example.exampletypehandler"/> <package name=" kr.pe.ldg.mybatis.example "/> </typehandlers> 9 MyBatis

10 앞서언급하긴했지만 mybatis 는 SQL 구문과모델을매핑하는역할을담당한다. 그리고그내부에서는 JDBC api 를사용한다. 이두가지설명에서이해해야하는것이 mybatis 는이두가지외더이상의것을하지않는다. 즉 JDBC 의결과셋의메타데이터 (java.sql.resultsetmetadata 와같은 ) 를추출해서분석해서자동으로처리하는기능은하지않는다. 즉테이블의칼럼타입과자바모델의변수타입이명확한경우에는상관없으나혼란의여지가있다면반드시그에대한정보를셋팅해줘야의도된데로작동하게된다. MyBatis 는제네릭타입을체크해서 TypeHandler 로다루고자하는자바타입을알것이다. 하지만두가지방법으로이행위를재정의할수있다 : typehandler 요소의 javatype 속성추가 ( 예제 : javatype="string") TypeHandler 애노테이션추가. javatype 는무시된다. 관련된 JDBC 타입은두가지방법으로명시할수있다 : typehandler 요소에 jdbctype 속성추가 ( 예제 : jdbctype=varchar). TypeHandler 클래스에관련된 JDBC 애노테이션추가. jdbctype 는무시된다. E. objectfactory 대개의경우에는결과셋에대응되는모델을만들때는칼럼명 ( 또는칼럼별칭 ) 에대응되는 setter 메서드를호출해서모델을만들어리턴한다. 그리고추가로값을셋팅하고자할때는이모델에서다시셋팅하는과정을거치는게일반적이라고생각한다. 하지만이과정을 mybatis 매핑과정에서한꺼번에처리하고자할때는 ObjectFactory 를사용할수있다. 구현방식은 org.apache.ibatis.reflection.factory.objectfactory 인터페이스를구현하거나간단히 org.apache.ibatis.reflection.factory.defaultobjectfactory 를확장하는방법이있다. public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(class type) { return super.create(type); public Object create(class type, List<Class> constructorargtypes, List<Object> constructorargs) { return super.create(type, constructorargtypes, constructorargs); public void setproperties(properties properties) { super.setproperties(properties); <objectfactory type="kr.pe.ldg.mybatis.example.exampleobjectfactory"> <property name="someproperty" value="100"/> </objectfactory> 10 MyBatis

11 F. objectwrapperfactory G. plugins mybatis 가매핑구문을실행하는과정에서특정시점의처리를가로채서부가적인작업이가능하도록해준다. 로그를찍어줄수도있고, 파라미터에대해공통적으로타입체크또는결과셋에대한처리를추가할수도있을것이다. 1. Executor (update, query, flushstatements, commit, rollback, gettransaction, close, isclosed) 2. ParameterHandler (getparameterobject, setparameters) 3. ResultSetHandler (handleresultsets, handleoutputparameters) 4. StatementHandler (prepare, parameterize, batch, update, query) type= Executor.class, method = "update", args = {MappedStatement.class,Object.class)) public class ExamplePlugin implements Interceptor { public Object intercept(invocation invocation) throws Throwable { return invocation.proceed(); public Object plugin(object target) { return Plugin.wrap(target, this); public void setproperties(properties properties) { <plugins> <plugin interceptor="org.mybatis.example.exampleplugin"> <property name="someproperty" value="100"/> </plugin> </plugins> H. environments mybatis 의환경설정은트랜잭션관리자와데이터소스설정이다. 이환경설정은 mybatis 단독으로사용할때만필요하며 Spring 연동모듈을사용할경우에는필요없다. Spring 연동모듈에서는트랜잭션과데이터소스설정을 Spring 에서제어하기때문이다. 첫번째로설정가능한항목은 transactionmanager ( 트랜잭션관리자 ) 이다. 트랜잭션관리자에서셋팅해야할값은 type 과각종프로퍼티이다. type 속성으로선택가능한값은 JDBC 와 MANAGED 이다. 1. JDBC : mybatis 자바 API 에서제공하는 commit(), rollback() 메서드등을사용해서트랜잭션을관리하는방식이다. 2. MANAGED : mybatis 자바 API 보다는컨테이너가직접트랜잭션을관리하는방식이다. 11 MyBatis

12 두번째로선택가능한항목은 datasource( 데이터소스 ) 이다. 데이터소스에서셋팅해야할값은 type 과각종프로퍼티이다. type 속성은선택가능한값은 UNPOOLED, POOLED, JNDI 이다. 1. UNPOOLED : 요청마다데이터베이스연결을새롭게생성하고처리후완전히해제한다. 데이터베이스연결을매번생성하는것이성능적으로영향이있기때문에간단한테스트용애플리케이션을제외하고대부분의서비스용애플리케이션에서는사용하지않는다. 이타입에서선택가능한프로퍼티는 5 가지정도된다. driver - JDBC 드라이버의클래스명 url - 데이터베이스연결을위한 URL 정보 username - 데이터베이스연결을위한계정명 password - 데이터베이스연결을위한계정의패스워드 defaulttransactionisolationlevel - 디폴트트랜잭션격리레벨 2. POOLED : 일정수의데이터베이스연결을풀에넣어두고필요할때마가가져다가사용하고사용하고나면다시풀에넣는다. 매번데이터베이스연결을생성하지않기때문에대부분의웹애플리케이션에서기본적으로사용한다. 앞서본 UNPOOLED 에서설정가능한프로퍼티와그외추가로프로퍼티를지정할수있다. poolmaximumactiveconnections 주어진시간에존재할수있는활성화된 ( 사용중인 ) 커넥션의수. 디폴트는 10 이다. poolmaximumidleconnections 주어진시간에존재할수있는유휴커넥션의수 강제로리턴되기전에풀에서 체크아웃 될수있는커넥션의시간. 디폴트는 20000ms(20 초 ) pooltimetowait 풀이로그상태를출력하고비정상적으로긴경우커넥션을다시얻을려고시도하는로우레벨셋팅. 디폴트는 20000ms(20 초 ) poolpingquery 커넥션이작업하기좋은상태이고요청을받아서처리할준비가되었는지체크하기위해데이터베이스에던지는핑쿼리 (Ping Query). 디폴트는 핑쿼리가없음 이다. 이설정은대부분의데이터베이스로하여금에러메시지를보게할수도있다. poolpingenabled 핑쿼리를사용할지말지를결정. 사용한다면, 오류가없는 ( 그리고빠른 ) SQL 을사용하여 poolpingquery 프로퍼티를셋팅해야한다. 디폴트는 false 이다. poolpingconnectionsnotusedfor poolpingquery 가얼마나자주사용될지설정한다. 필요이상의핑을피하기위해데이터베이스의타임아웃값과같을수있다. 디폴트는 0 이다. 디폴트값은 poolpingenabled 가 true 일경우에만, 모든커넥션이매번핑을던지는값이다. 3. JNDI : 컨테이너의 JNDI 컨텍스트를참조한다. 앞서본두가지타입과는다르며, 설정가능한프로퍼티는 2 개뿐이다. initial_context 이프로퍼티는 InitialContext 에서컨텍스트를찾기 ( 예를들어, initialcontext.lookup(initial_context)) 위해사용된다. 이프로퍼티는선택적인값이다. 이설정을생략하면, data_source 프로퍼티가 InitialContext 에서직접찾을것이다. data_source DataSource 인스턴스의참조를찾을수있는컨텍스트경로이다. initial_context 룩업을통해리턴된컨텍스트에서찾을것이다. initial_context 가지원되지않는다면, InitialContext 에서직접찾을것이다. 이환경설정을 ibatis 에서는한개만설정가능했으나 mybatis 에서는여러개설정하고 SqlSessionFactory 객체를생성하는시점에선택할수있도록했다. 필자의경우서버환경마다대부분동일하고 JDBC url 과계정정보정도만달라서여러개의환경설정을두는방식보다는프로퍼티파일을서버별로두는방식을사용하기때문에그효용성에대해서는크게와닿지않으나사용자는사람들의목적에따라분명 ibatis 때보다는좋은점이있을것이다. 12 MyBatis

13 I. databaseidprovider J. mappers 매핑구문을지정하는방법이다. ibatis 에서는매핑구문을정의하는방법이 2 가지뿐이었지만 mybatis 에서는 4 가지를제공한다. 1. 클래스패스내 XML 매핑파일지정 (resource 속성 ) 2. url 을사용한 XML 매핑파일지정 (url 속성 ) 3. 매핑애노테이션을사용하는인터페이스위치지정 (class 속성 ) 4. 패키지지정으로패키지내자동으로매핑구문검색 ( name 속성 ) <mappers> <mapper resource="org/mybatis/builder/authormapper.xml"/> <mapper url="file:///var/mappers/authormapper.xml"/> <mapper class="org.mybatis.builder.authormapper"/> <package name="org.mybatis.builder"/> </mappers> K. 정리여기에서대부분의프로젝트를작성할때가장공통적으로사용되는요소는 properties, settings, typealiases, environments, mappers 의 5 가지이다. 이요소들은명칭이나그역할이조금달라지긴했으나이전버전인 ibatis 에도거의동일하게있었다.. 그외추가된요소는 mybatis 의스펙을결정하면서도움이되리라생각되고실제몇몇사용자들이요청해서생긴것들이다. 단공통적으로사용할만한기능이아닌게많아서사용시원하는요구사항에충분히맞는지확인후사용해야한다 매퍼 XML 과매퍼애노테이션 ibatis 에서는매핑구문정의가 XML 에서만가능했다. 하지만 mybatis 에서는 XML 과애노테이션두가지방식을지원한다. 실제사용하는경우로따져보면 3 가지형태로사용된다. 1. XML 만사용 2. 애노테이션만사용 3. XML 과애노테이션을혼용해서사용 B. XML 만사용하는경우 XML 을사용하는경우는 ibatis 를사용해본사람이라면 XML 요소의명칭과동적 SQL 부분의변경사항정도를제외하면기존과거의동일하기때문에익히는데시간이얼마들지않을것이다. 앞서우리는앞장에서 XML 을사용하는경우에대한간단한에제를봤다. 이미본예제와함께동적 SQL 을사용하는경우의예제를추가해서다시보자 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//dtd Mapper 3.0//EN" " <mapper namespace="kr.pe.ldg.mybatis.example1.repository.mapper.commentmapper"> <select id="selectcommentbyprimarykey" parametertype="long" resulttype=" Comment"> SELECT comment_no AS commentno, 13 MyBatis

14 user_id AS userid, comment_content AS commentcontent, reg_date AS regdate FROM COMMENT WHERE comment_no = #{commentno </select> <select id="selectcommentbycondition" parametertype="hashmap" resulttype="comment"> SELECT comment_no, user_id, comment_content, reg_date FROM COMMENT <where> <if test="commentno!= null"> comment_no = #{commentno </if> </where> </select> </mapper> 두개의매핑구문이있다. 각각을 mybatis 자바 API 를통해사용할때는명명공간을반드시붙여서매핑구문아이디를사용해야한다. 1. selectcommentbyprimarykey sqlsession.selectone("kr.pe.ldg.mybatis.example1.repository.mapper.commentmapper.selectcommentbyprimarykey", 1L); 2. selectcommentbycondition sqlsession.selectlist("kr.pe.ldg.mybatis.example1.repository.mapper.commentmapper.selectcommentbycondition", new HashMap<String, Object>()); C. 애노테이션만사용하는경우 XML 을사용하는경우에서본 selectcommentbyprimarykey, selectcommentbycondition 모두애노테이션방식으로변경해보자. 애노테이션을사용할경우의단점은, 동적 SQL 을작성하기가어렵다는것이다. 애노테이션을제공하고있다. public interface CommentMapper "SELECT ", "comment_no, user_id, comment_content, reg_date ", "FROM COMMENT ", "WHERE comment_no = #{commentno" ) Comment selectcommentbyprimarykey(long commentno); 14 MyBatis

15 @SelectProvider(type=CommentSqlProvider.class, method="selectcommentbycondition") List<Comment> selectcommentbycondition(map<string, Object> condition); ibatis 와달리 mybatis 에서는동적 SQL 을자바코드로작성할수있도록 API 가추가되었다. 대표적인경우가샘플에서보이는 BEGIN, SELECT, FROM 등이다. 와 XML 동적 SQL 은그내용이많아뒤에서다시다루도록하겠다. public class CommentSqlProvider { public String selectcommentbycondition(commentexample example) { BEGIN(); SELECT("comment_no"); SELECT("user_id"); SELECT("comment_content"); SELECT("reg_date"); FROM("comment"); applywhere(example, false); return SQL(); D. XML 과애노테이션을혼용해서사용하는경우 XML 을사용하는경우에서 selectcommentbyprimarykey, selectcommentbycondition 두가지를봤다. 애노테이션형태를보여주기위해임의로 selectcommentbyprimarykey 를애노테이션방식을변경을했다. 그렇기때문에 selectcommentbycondition 은여전히 XML 에그대로남는다. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//dtd Mapper 3.0//EN" " <mapper namespace="kr.pe.ldg.mybatis.example1.repository.mapper.commentmapper"> <select id="selectcommentbycondition" parametertype="hashmap" resulttype="comment"> SELECT comment_no, user_id, comment_content, reg_date FROM COMMENT <where> <if test="commentno!= null"> comment_no = #{commentno 15 MyBatis

16 </if> </select> </mapper> </where> 하지만 selectcommentbyprimarykey 는아래처럼애노테이션으로수정하였다. 필자의경우, 애노테이션에배열형태로넣었지만한개의문자열로넣어도된다. 배열형태로넣을경우, 모든문자열을순서대로붙여서한문자열로만들어서처리한다. 애노테이션을사용할경우의단점은, 동적 SQL 을작성하기가어렵다는것이다. 와 XML 동적 SQL 은그내용이많아뒤에서다시다루도록하겠다. public interface CommentMapper "SELECT ", "comment_no, user_id, comment_content, reg_date ", "FROM COMMENT ", "WHERE comment_no = #{commentno" ) Comment selectcommentbyprimarykey(long commentno); comment_no, user_id, comment_content, reg_date FROM COMMENT WHERE comment_no = #{commentno") List<Comment> selectcommentbycondition(map<string, Object> condition); 트랜잭션관리 A. SqlSessionFactory mybatis 의전반적인처리는 SqlSession 객체가담당한다. 그렇기때문에 SqlSession 객체가생성되는시점에트랜잭션에관련한속성이셋팅이된다. 그래서트랜잭션을처리하는방법을보기전에 SqlSession 객체가생성될때의형태를봐두는게좋다. 먼저 SqlSession 객체를생성하는 SqlSessionFactory 의메서드를살펴보자. 1. SqlSession opensession() 2. SqlSession opensession(boolean autocommit) 3. SqlSession opensession(connection connection) 4. SqlSession opensession(transactionisolationlevel level) 5. SqlSession opensession(executortype exectype,transactionisolationlevel level) 6. SqlSession opensession(executortype exectype) 7. SqlSession opensession(executortype exectype, boolean autocommit) 8. SqlSession opensession(executortype exectype, Connection connection) 16 MyBatis

17 B. SqlSession 객체의디폴트속성 SqlSessionFactory 가제공하는메서드가이렇게많긴하지만실제로는대부분 opensession() 으로처리가가능하다. opensession() 메서드를사용할경우, 앞서본 mybatis 설정파일의내용을그대로가져간다. 그외메서드는특별한경우 mybatis 의설정을그대로사용하지않고처리하기위함인데, 실제개발과정에서그러한경우가많지않으리라생각한다. opensession() 메서드를사용하여 SqlSession 객체를생성하게되면생성된객체의성격은디폴트상태가된다. 1. 트랜잭션은시작된다. 2. mybatis 설정파일의설정된형태의데이터소스를가진다. 3. 트랜잭션에관련한격리레벨이나전파설정은설정내용에의해셋팅된다. 4. PreparedStatement 는재사용되지않고처리는배치형태가아니다. C. SqlSession 이제공하는메서드 SqlSession 객체가제공하는메서드는많지만대략적으로보면아래와같다. 1. <T> T selectone(string statement) 2. <E> List<E> selectlist(string statement) 3. <K,V> Map<K,V> selectmap(string statement, String mapkey) 4. int insert(string statement) 5. int update(string statement) 6. int delete(string statement) D. 트랜잭션제어메서드 1. void commit() 2. void commit(boolean force) 3. void rollback() 4. void rollback(boolean force) 여기서독특한것은 boolean 타입의파라미터이다. mybatis api 에서입력 / 수정 / 삭제에대한호출이한번도없었다고하면명시적으로커밋이나롤백을하지않는다. 단 boolean 타입의파라미터를 true 로지정하면입력 / 수정 / 삭제의호출이있었는지에대해체크하지않고무조건커밋이나롤백을하도록처리한다. mybatis 를단독으로사용할때는 mybatis 의 SqlSession 객체의 commit() 이나 rollback() 메서드를사용하면된다. 하지만 Spring 이나 Google Guice 와연동하는경우, 트랜잭션에대한제어는 mybatis 가담당하지않고그역할이 Spring 이나 Google Guice 로위임된다. Spring 연동시트랜잭션처리를뒤에서다시다루도록한다 좀더복잡한매핑규칙정의 A. constructor B. association C. collection D. discriminator 17 MyBatis

MyBatis

MyBatis MyBatis 목차 3 1.1 mybatis 시작하기 4 1.1.1 데이터베이스프로그래밍 4 1.1.2 데이터매퍼 MYBATIS 5 1.1.3 이책은구성은 7 1.1.4 정리 7 1.2 mybatis 가장간단히실행하기 8 1.2.1 필수구성요소 8 1.2.2 MYBATIS 설정파일 8 1.2.3 설정파일로드하기 9 1.2.4 데이터조회하기 9 1.2.5 데이터입력하기

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

MyBatis 3 사용자가이드

MyBatis 3 사용자가이드 MyBatis 3 사용자가이드 번역자 : 이동국 (fromm0@gmail.com, http://openframework.or.kr) 최신버전은 http://kldp.net/projects/fwko/ Contents MyBatis 는무엇인가?... 5 시작하기... 5 XML 에서 SqlSessionFactory 빌드하기... 5 XML 을사용하지않고 SqlSessionFactory

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 MyBatis 연동가이드 2014. 10 Copyright c 2000~2014 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference 2013-12 sypark

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - ArrayAdapter ArrayAdapter adapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1,

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

파워포인트 템플릿

파워포인트 템플릿 ibizsoftware 정호열차장 ( 표준프레임워크오픈커뮤니티커미터 ) Agenda 1. ibatis 와 Hibernate 의개념및특징 2. Hibernate 와 JPA 쿼리종류 3. ibatis 와 Hibernate 동시사용을위한 Transaction 처리방안 4. @EntityListeners 활용방법 Agenda 5. Hibernate 사용시 Dynamic

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

< 목차 > 1. Data Access Service 개요 (ibatis 활용 ) 3. DBIO 소개

< 목차 > 1. Data Access Service 개요 (ibatis 활용 ) 3. DBIO 소개 전자정부표준프레임워크 Data Access Service 소개 2011-02-23 오픈커뮤니티김영우커미터 < 목차 > 1. Data Access Service 개요 (ibatis 활용 ) 3. DBIO 소개 Contents 1. Data Access Service 개요 1-1. 데이터처리레이어란? 1-2. 데이터처리레이어구성요소 1-3. Data Access

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

untitled

untitled OZ User Data Store Manual... 6 UDS... 6 JDBC UDS... 12 Connection UDS... 17 Connection UDS... 23 DataAction... 31 DataAction... 31 - DataAction... 46... 68 HttpRequest... 76 ResultSet... 83 OZ User Data

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

Microsoft PowerPoint - lec12 [호환 모드]

Microsoft PowerPoint - lec12 [호환 모드] 제네릭 제네릭클래스 제네릭인터페이스 제네릭메소드 형매개변수의제한 어노테이션 어노테이션형태시스템정의어노테이션사용자정의어노테이션 kkman@sangji.ac.kr 2 제네릭 (generic) 클래스나메소드에자료형을매개변수형식으로사용할수있는기능 자료형과무관하게알고리즘을기술 예전에작성한알고리즘을쉽게재사용가능 어노테이션 (annotation) 프로그램요소에다양한종류의속성정보를추가하기위해서사용

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

슬라이드 1

슬라이드 1 1. 개요 - 실행환경데이터처리레이어 (1/3) 데이터베이스에대한연결및영속성처리, 선언적인트랜잭션관리를제공하는 Layer 임 서비스그룹 설명 Presentation Layer 전자정부개발프레임워크실행환경 Business Logic Layer Persistence Layer Batch Layer Integration Layer Mobile Presentation

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습문제 Chapter 05 데이터베이스시스템... 오라클로배우는데이터베이스개론과실습 1. 실습문제 1 (5 장심화문제 : 각 3 점 ) 6. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (2) 7. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (5)

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Software Verification Junit, Eclipse 및빌드환경 Team : T3 목차 Eclipse JUnit 빌드환경 1 Eclipse e 소개 JAVA 를개발하기위한통합개발환경 주요기능 Overall 빌드환경 Code edit / Compile / Build Unit Test, Debug 특징 JAVA Code를작성하고이에대한 debugging

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Altibase Starting User's Manual

Altibase Starting User's Manual ALTIBASE HDB Tools & Utilities Altibase Hadoop Connector User's Manual Release 6 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Tools & Utilities Altibase Hadoop

More information

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri 6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

I. Introduction... 1 II. Jdbc Support 구현배경 사용자요구사항 p6spy Architecture Architecture InjectionPa

I. Introduction... 1 II. Jdbc Support 구현배경 사용자요구사항 p6spy Architecture Architecture InjectionPa Anyframe Jdbc Support Plugin Version 1.1.0 저작권 2007-2014 삼성 SDS 본문서의저작권은삼성 SDS 에있으며 Anyframe 오픈소스커뮤니티활동의목적하에서자유로운이용이가능합니다. 본문서를복제, 배포할경우에는저작권자를명시하여주시기바라며본문서를변경하실경우에는원문과변경된내용을표시하여주시기바랍니다. 원문과변경된문서에대한상업적용도의활용은허용되지않습니다.

More information

Java XPath API (한글)

Java XPath API (한글) XML : Elliotte Rusty Harold, Adjunct Professor, Polytechnic University 2006 9 04 2006 10 17 문서옵션 제안및의견 XPath Document Object Model (DOM). XML XPath. Java 5 XPath XML - javax.xml.xpath.,? "?"? ".... 4.

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

歯Writing_Enterprise_Applications_2_JunoYoon.PDF Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part2 JSTORM http//wwwjstormpekr Revision Document Information Document title Writing Enterprise Applications

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence)

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence) 8 중 1 2008-01-31 오전 12:08 오픈소스스터디 jpetstore 예제로살펴보는 Spring MVC와 ibatis 연동 Added by Sang Hyup Lee, last edited by Sang Hyup Lee on 1월 16, 2007 (view change) Labels: (None) 지금까지 Spring MVC 를셋팅하는과정에서부터하나의

More information