SqlMapClient API – 데이터 조회

 

queryForObject()

데이터베이스로부터 한 개의 레코드를 가져다가 자바 객체에 저장

Object queryForObject(String id, Object parameter) throws SQLException;

-       디폴트 생성자를 가진 객체를 생성(보편적 방법)

-       디폴트 생성자가 없으면 throws "런타임 예외"

 

queryForList()

한 개 이상의 레코드를 가져와서 자바 객체의 List를 만드는 데 사용

List queryForList(String id, Object parameter) throws SQLException;

-       매핑 구문이 반환하는 모든 객체를 반환

 

queryForMap()

데이터베이스로부터 한 개 혹은 그 이상의 레코드를 가져올 때 자바 객체의 Map을 반환

Map queryForMap(String id, Object parameter, String key) throws SQLException;

-       퀴리 실행후 Map 객체를 생성하여 반환

-       key : 결과 객체를 가리키는 키 - > 지정된 프로퍼티의 값

Map queryForMap(String id, Object parameter, String key, String value) throws SQLException;

-       key : 결과 객체를 가리키는 키 - > 지정된 프로퍼티의 값

-       value : 결과 객체 - > 지정된 프로퍼티의 값

 

 

SqlMapClient API – 데이터 갱신

 

insert 메소드

Object insert(String id, Object parameterObject) throws SQLException;

-       parameterObject : 파라미터 객체(데이터베이스에 데이터 삽입하는 데 사용)

-       반환 : 객체

 

update 메소드

int update(String id, Object parameterObject) throws SQLException;

-       parameterObject : 값을 제공하는 데 사용할 파라미터 객체

-       반환: update 구문에 의해 영향을 받은 레코드의 개수

 

 

delete 메소드

int delete(String id, Object parameterObject) throws SQLException;

-       parameterObject : 값을 제공하는 데 사용할 파라미터 객체

-       반환: 삭제된 레코드의 개수

 

 

트랜잭션(Transaction) 관리

SqlMapClient인터페이스는 트랜잭션경계를 지정하기 위해 메소드를 가진다. 트랜잭션이 시작되고 SqlMapClient인터페이스의 다음과 같은 메소드를 사용함으로써 commit되거나 rollback된다.

-       public void startTransaction () throws SQLException

-       public void commitTransaction () throws SQLException

-       public void endTransaction () throws SQLException

 

private Reader reader =

             new Resources.getResourceAsReader ("com/ibatis/example/sqlMap-config.xml");

private SqlMapClient sqlMap = XmlSqlMapBuilder.buildSqlMap(reader);

            

public updateItemDescription (String itemId, String newDescription)

             throws SQLException {

             try {

                           sqlMap.startTransaction ();

                           Item item = (Item) sqlMap.queryForObject ("getItem", itemId);

                           item.setDescription (newDescription);

                           sqlMap.update ("updateItem", item);

                           sqlMap.commitTransaction ();

             } finally {

                           sqlMap.endTransaction ();

             }

}

 

 

MySqlConfig.java

public class MySqlConfig {

            

             private static SqlMapClient sqlMap;

             static {

                           Reader reader = null;

                           try {

                                        String resource = "SqlMapConfig.xml";

                                        reader = Resources.getResourceAsReader (resource);

                                        sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

                           } catch (Exception e) {

                                        e.printStackTrace();

                           }finally{

                                        if(reader != null){

                                                     try {

                                                                  reader.close();

                                                     } catch (IOException e) {

                                                                  e.printStackTrace();

                                                     }

                                        }

                           }

             }

             public static SqlMapClient getSqlMapInstance () {

                           return sqlMap;

             }

}

 

'개발자 센터 > iBatis' 카테고리의 다른 글

간결한 데이터 매퍼의 대명사, iBATIS SQLMaps 활용법  (0) 2009.12.13
iBatis 에서 페이징하는 방법  (0) 2009.12.13
iBatis 참고 사이트  (0) 2009.12.13
iBatis Framework의 구성  (0) 2009.12.13
iBatis Framework  (0) 2009.12.13
Posted by 피곤키오
,