Áö³ 1 ȸ¿¡¼´Â O/R¸ÅÇÎ ¹× O/R¸ÅÇÎ ÅøÀÇ °³¿ä¿¡ ´ëÇØ ¼³¸íÇϰí, .NETÀü¿ëÀÇ ´ëÇ¥ÀûÀÎ O/R¸ÅÇÎ ÅøÀΡ¸NHibernate¡¹¸¦ ¼Ò°³Çß´Ù.
¡¡O/R ¸ÅÇÎ ÅøÀ» »ç¿ëÇϸé, (C# À̳ª VB.NETÀÇ) ¿ÀºêÁ§Æ®¿Í µ¥ÀÌÅͺ£À̽º »óÀÇ Å×À̺íÀ» ¸ÅÇÎÇÒ ¼ö ÀÖ´Ù. À̰Ϳ¡ ÀÇÇØ, ¾îÇø®ÄÉÀ̼ǿ¡¼´Â ¿ÀºêÁ§Æ®ÀÇ ¼Ó¼º¿¡ ¾×¼¼½ºÇϱ⸸ Çϸé, Á÷°¨ÀûÀ¸·Î Å×À̺í»óÀÇ °¢ Çʵ忡 ¾×¼¼½ºÇÒ ¼ö ÀÖ°Ô µÈ´Ù´Â °ÍÀÌ´Ù.
¡¡Áö³ ȸÀÇ ¼µÎ¿¡¼ ³ªÅ¸³½ °Íó·³, .NET ȯ°æ¿¡¼ ÀÌ¿ë °¡´ÉÇÑ O/R ¸ÅÇÎ ÅøÀº ÀÌ¹Ì ¾ó¸¶µçÁö Á¦°øµÇ°í ÀÖ´Ù. À̹ø¿¡´Â NHibernate¿Í ³ª¶õÈ÷ .NET Àü¿ëÀÇ ´ëÇ¥ÀûÀÎ O/R¸ÅÇÎ ÅøÀΡ¸iBATIS.NET¡¹¿¡ ´ëÇØ ÇØ¼³Çϸé¼, ½ÇÁ¦·Î ±×°ÍÀ» ÀÌ¿ëÇÑ ASP.NETÀÇ À¥ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇØ ³ª°£´Ù.
iBATIS.NET
¡¡Áö³È¸¿¡¼ ˜±Æì º» °Íó·³, NHibernate´Â SQL Äù¸®¸¦ ÀÚµ¿ »ý¼ºÇϱ⠶§¹®¿¡, ¾îÇø®ÄÉÀ̼ÇÀÌ ¿¬±¸ ÃÖÁ¾ ´Ü°èÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ÀÇÁ¸ÇÏ±â ¾î·Æ°í, ¿ø·¡ °³¹ßÀÚ°¡ SQL¸¦ ÀǽÄÇÏÁö ¾Ê¾Æµµ µÇ´Â ÀåÁ¡ÀÌ ÀÖ´Ù.
¡¡±×·¯³ª ÇÑÆíÀ¸·Î, SQL Äù¸®¿¡ ÀÇÇÑ °³¹ß¿¡ Á¤ÅëÇÑ °³¹ßÀÚ¿¡°Ô À־Â, Äڵ尡 ÀåÈ²ÇØÁ® ¹ö¸®±â ½±°í, ¼¶¼¼ÇÑ ÆÛÆ÷¸Õ½º Æ©´×À» ½Ç½ÃÇÏ±â ¾î·Æ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Â °Íµµ »ç½ÇÀÌ´Ù. ¸¸¾à ±×·¯ÇÑ ´ÜÁ¡À» ÀåÁ¡ ÀÌ»óÀ¸·Î °ÇÏ°Ô ´À³¢°í ÀÖ´Ù¸é, iBATIS.NETÀ̶ó°í ÇÏ´Â ¼±Åà »çÇ×À» °ËÅäÇØµµ ÁÁÀ» °ÍÀÌ´Ù.
¡¡iBATIS.NET´Â Apache Foundation ¿¡¼ Á¦°øµÇ°í ÀÖ´Â ¿ÀÇ ¼Ò½ºÀÇ O/R¸ÅÇΠüÁ¦ÀÌ´Ù *. ÀÌ iBATIS.NETÀÌ NHibernate¿Í Å©°Ô ´Ù¸¥ °ÍÀº SQL Äù¸®¸¦ °³¹ßÀÚ ÀÚ½ÅÀÌ ±â¼úÇϴ ŸÀÔÀÇ O/R¸ÅÇÎ ÅøÀ̶ó´Â Á¡ÀÌ´Ù.
¡¡iBATIS.NET¿¡¼´Â SQL Äù¸®¸¦ ¿ÜºÎ ÆÄÀÏÈ ÇÒ »ÓÀ̶ó¼, NHibernate µî¿¡ ºñÇØ °£ÆíÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ°í, ¼¶¼¼ÇÑ ÆÛÆ÷¸Õ½º Æ©´×µµ ½Ç½ÃÇϱ⠽±°í, Äڵ忡¼ SQL Äù¸®¸¦ ºÐ¸®ÇϹǷΠÄڵ带 º¸±â ½±´Ù´Â µîÀÇ ÀåÁ¡ÀÌ ÀÖ´Ù. ¹°·Ð, SQLÀ» ÀǽÄÇØ¾ß Çϰí, »ç¿ëÇϰí ÀÖ´Â SQL¹®¿¡ µû¶ó¼´Â ¿¬±¸ ÃÖÁ¾ ´Ü°èÀÇ µ¥ÀÌÅͺ£À̽º Á¦Ç°¿¡ ÀÇÁ¸ÇÒ °¡´É¼ºÀÌ ÀÖ´Â µîÀÇ ´ÜÁ¡µµ ÀÖ±ä ÇÏÁö¸¸, ¾çÀÚÀÇ ÀåÁ¡/´ÜÁ¡À» ÀÌÇØÇϰí, Àß ±¸ºÐÇÏ¿© »ç¿ëÇÏ±æ ¹Ù¶õ´Ù.
¡¡±×·¯¸é Áï½Ã, iBATIS.NETÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º ¾×¼¼½ºÀÇ ¼ø¼¸¦ »ìÆì º¸ÀÚ.
|
* iBATIS.NET´Â Á¤È®ÇϰԴ O/R¸ÅÇÎ ±â´ÉÀ» ÁÖ°üÇϴ¡¸SQL Maps¡¹°ú DI(Dependency Injection) ±â´ÉÀ» ÁÖ°üÇϴ¡¸DAO Framework¡¹¶ó°í ÇÏ´Â 2°¡ÁöÀÇ ±â´ÉÀ¸·Î ±¸¼ºµÇ´Â üÁ¦(¶óÀ̺귯¸®)ÀÌ´Ù. º»¹®¿¡¼´Â ÀÌ iBATIS.NETÀÇ SQL Maps ±â´É¿¡ ´ëÇØ¼¸¸ ¾ð±ÞÇϱâ·Î Çϰí, ÀÌÈÄ¿¡µµ iBATIS.NET¶ó°í ÇßÀ» °æ¿ì SQL Maps¸¦ °¡¸®Å²´Ù. |
iBATIS.NETÀÇ ÀνºÅç°ú ȯ°æ ¼³Á¤
¡¡Áö³ ȸÀÇ NHibernate¿Í °°ÀÌ iBATIS.NET¸¦ ÀÌ¿ëÇÏ·Á¸é, ¹Ì¸® ÇÊ¿äÇÑ ÆÄÀÏÀÇ ¹èÄ¡¿Í ¼³Á¤ ÆÄÀÏÀÇ Á¤ÀǸ¦ ³¡¸¶ÃÄ µÑ Çʿ䰡 ÀÖ´Ù. ±¸Ã¼ÀûÀÎ »ùÇà À¥ ¾îÇø®ÄÉÀ̼ÇÀ» »ìÆì º¸±â Àü¿¡, ¿ì¼±Àº iBATIS.NETÀÇ µ¿ÀÛ¿¡ ÇÊ¿äÇÑ È¯°æ ¼³Á¤À» ¿Ï·áÇØ µÎÀÚ.
£Û1£ÝiBATIS.NETÀÇ À̿뿡 ÇÊ¿äÇÑ ÆÄÀÏÀ» ¹èÄ¡ÇÑ´Ù
¡¡iBATIS.NET¸¦ ÀÌ¿ëÇϴµ¥ ÀÖ¾î¼, ¿ì¼± ÀÌÇÏÀÇ »çÀÌÆ®¿¡¼ ÇÊ¿äÇÑ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇØ¾ß ÇÑ´Ù. º»¹®¿¡¼´Â ÁýÇÊ ½ÃÁ¡¿¡¼ÀÇ ÃֽйöÁ¯ÀÎ 1.2.1À» ¿¹·Î äÅÃÇÏÁö¸¸, iBATIS.NET´Â ¸ÅÀϸÅÀÏ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ´Ù. ±×¶§±×¶§ÀÇ ÃֽůÇÀ» ÀÌ¿ëÇÏ±æ ¹Ù¶õ´Ù.
¡¡´Ù¿î·ÎµåÇÑ ÆÄÀÏ(º»¹®ÀÇ ¿¹¿¡¼´Â DataMapper-bin-1.2.1. zip)ÀÇ ¾ÐÃàÀ» Ç®¸é, ¸î °³ÀÇ ÆÄÀÏÀÌ Àü°³µÉ °ÍÀÌ´Ù. ¿©±â¿¡¼´Â ´Ù¿î·Îµå ÆÄÀÏ¿¡ Æ÷ÇԵǴ ¸ðµç¡¸.dll¡¹ÆÄÀÏÀ» ¾îÇø®ÄÉÀÌ¼Ç ·çÆ® ¾Æ·¡ÀÇ¡¸bin¡¹Æú´õ¿¡ Ä«ÇÇÇÑ´Ù.
¡¡¶Ç, providers.config¸¦ ¾îÇø®ÄÉÀÌ¼Ç ·çÆ®ÀÇ ¾Æ·¡¿¡ º¹»çÇØ µÎÀÚ. providers.config´Â iBATIS.NET°¡ ÀÌ¿ëÇÏ´Â Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ(°¢°¢ÀÇ µ¥ÀÌÅͺ£À̽º Á¦Ç°¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ ±âº»ÀûÀÎ ¶óÀ̺귯¸® Áý´Ü)ÀÇ ¼³Á¤À» Á¤ÀÇÇÏ´Â ¼³Á¤ ÆÄÀÏÀÌ´Ù.
£Û2£ÝiBATIS.NETÀÇ µ¥ÀÌÅͺ£À̽º Á¢¼Ó Á¤º¸¸¦ Á¤ÀÇÇÑ´Ù
¡¡iBATIS.NET¿¡¼´Â ¿ì¼± µ¥ÀÌÅͺ£À̽º Á¢¼Ó Á¤º¸¸¦ Àü¿ë ¼³Á¤ ÆÄÀÏÀÎ sqlMap.config·Î ¼±¾ðÇØ µÎ¾î¾ß ÇÑ´Ù. ÀÌÇÏ´Â º»¹®ÀÇ »ùÇÿ¡¼ ÀÌ¿ëÇÏ´Â sqlMap.configÀÇ ±â¼ú ¿¹ÀÌ´Ù.
¡¡¶Ç, sqlMap.config´Â óÀ½ºÎÅÍ ½º½º·Î ±â¼úÇØµµ »ó°ü¾øÁö¸¸, ´Ù¿î·Îµå ÆÄÀÏ ¾È¿¡µµ ÅÛÇø´À¸·Î¼ SqlMap-sample.config°¡ Æ÷ÇԵǾî ÀÖ´Ù. ¿©±â¿¡´Â ÃÖÀú ÇÊ¿äÇÑ ±â¼úÀÌ Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î, À̰ÍÀ» ÆíÁýÇϸé ŸÀÔ ¹Ì½ºµµ Àû°í, È¿À²ÀûÀ¸·Î ÀÛ¾÷À» ÁøÇàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
|
<?xml version="1.0" encoding="UTF-8" ?>
<sqlMapConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SqlMapConfig.xsd">
<providers resource="providers.config" />
<database> <provider name="sqlServer1.1"/> <dataSource name="sample" connectionString="Data Source=(local);User ID=sa;Password=sa;Persist Security Info=True;Initial Catalog=sample" /> </database>
<sqlMaps> <sqlMap resource="./Book.xml" /> </sqlMaps>
</sqlMapConfig>
| |
| iBATIS.NET°¡ »ç¿ëÇÏ´Â µ¥ÀÌÅͺ£À̽º Á¢¼Ó Á¤º¸ÀÇ ¼³Á¤ ¿¹(sqlMap.config) |
¡¡ ÀÛ¼ºÇÑ sqlMap.config´Â ´Ù¸¥¡¸.aspx¡¹ÆÄÀϰú °°Àº Æú´õ(º»¹®ÀÇ °æ¿ì¿¡´Â ¾îÇø®ÄÉÀÌ¼Ç ·çÆ®ÀÇ ¾Æ·¡)¿¡ ÀúÀåÇÒ °Í.
¡¡<providers>¿ä¼Ò¿¡´Â Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õÀÇ Á¤º¸¸¦ Á¤ÀÇÇÑ ¼³Á¤ ÆÄÀÏ(providers.config)¿¡ÀÇ ÆÐ½º¸¦ ÁöÁ¤ÇÑ´Ù. ¾Õ¿¡¼ ¼¼úÇÑ °Íó·³ providers.config´Â iBATIS.NET°¡ ´ëÀÀÇϰí ÀÖ´Â Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ¸¦ ±â¼úÇÑ ¼³Á¤ ÆÄÀÏÀÌ´Ù. providers.config´Â ¹Ì¸® ´Ù¿î·Îµå ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î, À̰ÍÀ» º¹»çÇϱ⸸ ÇÏ¸é µÇ°í, ½º½º·Î ÆíÁýÇÒ ÇÊ¿ä´Â ¾ø´Ù.
¡¡ÀÌÇÏ¿¡ providers.config·Î Á¤Àǵǰí ÀÖ´Â ÁÖµÈ Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ¸¦ µé¾î º¸ÀÚ.
| Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ¸í |
µ¥ÀÌÅͺ£À̽º |
| sqlServer1.0 |
SQL Server 7.0/2000(.NET Framework 1.0¿ë) |
| sqlServer1.1 |
SQL Server 7.0/2000(.NET Framework 1.1¿ë) |
| OleDb1.1 |
OLE DB(.NET Framework 1.1¿ë) |
| Odbc1.1 |
ODBC(.NET Framework 1.1¿ë) |
| oracle9.2 |
Oracle 9.2 |
| oracle10.1 |
Oracle 10.1 |
| oracleClient1.0 |
Oracle(Microsoft·ÎºÎÅÍ Á¦°øµÇ°í ÀÖ´Â °Í) |
| MySql |
MySQL |
| SQLite3 |
SQLite 3.0 |
| Firebird1.7 |
FireBird |
| PostgreSql0.7 |
PostgreSQL |
| iDb2.10 |
IBM DB2 |
| |
| iBATIS.NET°¡ ´ëÀÀÇÏ´Â Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ |
¡¡ ´Ù¸¸, SQL Server, OLE DB, ODBC ÀÌ¿ÜÀÇ µ¥ÀÌÅͺ£À̽º¸¦ ÀÌ¿ëÇÏ´Â °æ¿ì¿¡´Â º°µµÀÇ µ¥ÀÌÅͺ£À̽º Àü¿ë Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ(.NET µ¥ÀÌÅÍ ÇÁ·Î¹ÙÀÌ´õ)°¡ ÇÊ¿äÇÏ°Ô µÇ¹Ç·Î ÁÖÀÇÇÏÀÚ.
¡¡½ÇÁ¦ÀÇ Á¢¼Ó ¼³Á¤À» ÇÏ´Â °ÍÀº <database>¿ä¼ÒÀÇ ¿ªÇÒÀÌ´Ù. »ç¿ëÇÏ´Â Á¢¼Ó ÇÁ·Î¹ÙÀÌ´õ¸¦ <provider>¿ä¼Ò·Î, Á¢¼Ó ¹®ÀÚ¿À» <dataSource>¿ä¼Ò·Î °¢°¢ Á¤ÀÇÇÑ´Ù.
¡¡<sqlMaps>¿ä¼Ò´Â iBATIS.NET·Î »ç¿ëÇÏ´Â ¸ÅÇÎ ÆÄÀÏ¿¡ÀÇ ÆÐ½º¸¦ ÁöÁ¤ÇÑ´Ù. ¸ÅÇÎ ÆÄÀÏÀ̶õ, NHibernateÀÇ ÇØ¼³¿¡¼µµ ¼Ò°³Çß´ø °Íó·³, Å×À̺í»óÀÇ Çʵå(¿)¿Í Ŭ·¡½ºÀÇ ¼Ó¼ºÀ» °ü·ÃÁþ±â À§ÇÑ Á¤ÀÇ ÆÄÀÏÀÌ´Ù. ¿©±â¿¡¼´Â ¸ÅÇÎ ÆÄÀϷμ Book.xmlÀ» ÁöÁ¤ÇÑ´Ù.
£Û3£Ý¸ÅÇÎ ÆÄÀÏÀ» Á¤ÀÇÇÑ´Ù
¡¡ ´ÙÀ½À¸·Î, sqlMap.config·Î ÁöÁ¤ÇÑ ¸ÅÇÎ ÆÄÀÏ Book.xmlÀ» Á¤ÀÇÇϰí, books Å×À̺í°ú Book Ŭ·¡½º¸¦ ¿¬°üÁþ´Â´Ù. ¶Ç, books Å×À̺í, Book Ŭ·¡½º´Â ¸ðµÎ Áö³È¸ NHibernateÆí¿¡¼ »ç¿ëÇÑ °ÍÀ» ±×´ë·Î ÀÌ¿ëÇÏÀÚ.
|
<?xml version="1.0" encoding="UTF-8" ?>
<sqlMap namespace="Book" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SqlMap.xsd">
<alias> <typeAlias alias="Book" type="Com.Msn.Wings.Book, Book" /> </alias>
<resultMaps> <resultMap id="booksResult" class="Book"> <result property="Isbn" column="isbn" /> <result property="Title" column="title" /> <result property="Price" column="price" /> <result property="Publish" column="publish" /> <result property="Published" column="published" /> </resultMap> </resultMaps>
<statements>
<select id="getBooksInfo" resultMap="booksResult"> SELECT isbn,title,price,publish,published FROM books WHERE publish=#value# </select>
¡¦¡¦Áß·«¡¦¡¦
<insert id="setBookInfo" parameterClass="Book"> INSERT INTO books(isbn,title,price,publish,published) VALUES(#Isbn#,#Title#,#Price#,#Publish#,#Published#) </insert>
</statements>
</sqlMap>
| |
|
iBATIS.NET¿¡ ÀÇÇÑ ¸ÅÇÎ ÆÄÀÏÀÇ ±â¼ú ¿¹(Book.xml) |
¡¡ Ŭ·¡½º¿Í Å×À̺íÀ» °ü·ÃÁþ´Â °ÍÀº <resultMap>¿ä¼ÒÀÇ ¿ªÇÒÀÌ´Ù. id¼Ó¼º¿¡ ¸ÅÇθíÀ», class ¼Ó¼º¿¡ °ü·ÃÁþ´Â Ŭ·¡½º¸íÀ» ÁöÁ¤ÇÑ´Ù. ¶ÇÇÑ, Ŭ·¡½º¸íÀº ¹Ì¸® <typeAlias>¿ä¼Ò·Î ¼±¾ðÇÑ ¾Ù¸®¾î½º(alias)(º°Äª)¿Í ´ëÀÀÇϰí ÀÖ¾î¾ß ÇÑ´Ù.<typeAlias>¿ä¼ÒÀÇ ±¸¹®Àº ÀÌÇÏ¿Í °°´Ù.
<typeAlias alias="¾Ù¸®¾î½º(alias)¸í" type="Ŭ·¡½ºÀÇ ¿ÏÀü ¼ö½Ä¸í, ¾î¼Àºí¸®¸í" />
¡¡<resultMap>¿ä¼Ò ¾Æ·¡ÀÇ <result>¿ä¼Ò´Â, °¢°¢ÀÇ Çʵå¸í°ú ¼Ó¼ºÀ» °ü·Ã Áþ´Â´Ù. property ¼Ó¼º¿¡´Â Ŭ·¡½ºÀÇ ¼Ó¼º¸íÀ», column ¼Ó¼º¿¡´Â ´ëÀÀÇÏ´Â Çʵå¸íÀ» °¢°¢ ÁöÁ¤ÇÑ´Ù.
¡¡´ÙÀ½ÀÇ <statements>¿ä¼Ò´Â iBATIS.NET¿¡¼ ¹ßÇàÇÏ´Â SQL Äù¸®¸¦ °ü¸®ÇÑ´Ù. <statements>¿ä¼ÒÀÇ ¾Æ·¡¿¡´Â ÀÌÇÏÀÇ Ç¥¿¡¼ ³ªÅ¸³» º¸ÀÌ´Â ¿ä¼Ò¿Í ¼Ó¼ºÀ» ±â¼úÇÒ ¼ö ÀÖ´Ù.
| ¿ä¼Ò |
¼Ó¼º |
°³¿ä |
<insert> <update> <delete> |
id |
SQL Äù¸®¸í |
| parameterClass |
SQL Äù¸® ³»ÀÇ Ç÷¹À̽º Ȧ´õ¿¡ °ªÀ» ¼³Á¤Çϱâ À§ÇÑ Å¬·¡½º¸í |
| parameterMap |
SQL Äù¸® ³»ÀÇ Ç÷¹À̽º Ȧ´õ¿¡ °ªÀ» ¼³Á¤Çϱâ À§ÇÑ ¸Ê¸í |
| <select> |
id |
SQL Äù¸®¸í |
| parameterClass |
SQL Äù¸® ³»ÀÇ Ç÷¹À̽º Ȧ´õ¿¡ °ªÀ» ¼³Á¤Çϱâ À§ÇÑ Å¬·¡½º¸í |
| parameterMap |
SQL Äù¸® ³»ÀÇ Ç÷¹À̽º Ȧ´õ¿¡ °ªÀ» ¼³Á¤Çϱâ À§ÇÑ ¸Ê¸í |
| resultClass |
ÃëµæÇÑ °á°ú ¼¼Æ®¸¦ ¼¼Æ®Çϴ Ŭ·¡½º¸í |
| resultMap |
ÃëµæÇÑ °á°ú ¼¼Æ®¸¦ ¼¼Æ®ÇÏ´Â ¸Ê¸í |
| |
| ¿ä¼Ò ¾Æ·¡¿¡¼ ÁöÁ¤ °¡´ÉÇÑ ÁÖµÈ ºÎÇÏ ¿ä¼Ò¿Í ¼Ó¼º |
¡¡ ¿ì¼±<select>¿ä¼Ò´Â ±× À̸§¿¡¼µµ ½±°Ô ÃßÃøÇÒ ¼ö ÀÖµíÀÌ, SELECT ¸í·ÉÀ» ¹ßÇàÇÒ ¶§ ÀÌ¿ëµÈ´Ù. INSERT/UPDATE/DELETEÀÇ °¢ ¸í·ÉÀ» ¹ßÇàÇÏ´Â °æ¿ì¿¡´Â °¢°¢ ´ëÀÀÇÏ´Â ¿ä¼Ò·Î ÁöÁ¤ÇÏ¸é µÈ´Ù.
¡¡id¼Ó¼ºÀº SQL Äù¸®¸¦ ÇѲ¨¹ø¿¡ ƯÁ¤Çϱâ À§ÇÑ ³í¸®¸íÀÌ´Ù. ÄÚµåÁß¿¡¼ ¸ÅÇÎ ÆÄÀÏÀ» °Ë»öÇÒ ¶§ÀÇ Å°°¡ µÇ´Â Á¤º¸À̹ǷÎ, ¸ÅÇÎ ÆÄÀÏ ³»¿¡¼ ¹Ýµå½Ã ÇѲ¨¹ø¿¡ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
¡¡resultMap ¼Ó¼ºÀº µ¥ÀÌÅͺ£À̽º¿¡¼ ÃëµæÇÑ °á°ú ¼¼Æ®¸¦ ¿µ¼ÓÈ Å¬·¡½º(¿µ¼ÓÈ Å¬·¡½º¿¡ ´ëÇØ¼´Â Áö³ 1ȸÀÇ¡¸£Û4£Ý¿µ¼ÓÈ Å¬·¡½º¸¦ Á¤ÀÇÇÑ´Ù¡¹ÀÇ Ç׸ñ À» ÂüÁ¶)¿¡ ¸ÅÇÎÇϱâ À§ÇÑ ¸Ê¸íÀ» ÁöÁ¤ÇÑ´Ù. ¹æ±Ý Àü <resultMap>¿ä¼Ò·Î ÁöÁ¤ÇÑ id¼Ó¼ºÀÇ °ªÀ» ¼¼Æ®ÇÒ °Í.
¡¡¹ßÇàÇÏ´Â SQL Äù¸® º»Ã¼´Â <select> (¶Ç´Â <insert>/<update>/<delete>) ¿ä¼ÒÀÇ º»Ã¼¿¡ ±â¼úÇÑ´Ù. º»¹®ÀÇ ¼µÎ¿¡¼µµ ±â¼úÇÑ °Íó·³, iBATIS.NET¿¡¼´Â NHibernate¿Í °°Àº O/R¸ÅÇÎ Åø°ú´Â ´Þ¸®, SQL Äù¸®¸¦ °³¹ßÀÚ°¡ ¸í½ÃÀûÀ¸·Î ±â¼úÇØ¾ß ÇÑ´Ù.
¡¡¿¹¸¦ µé¸é ÀÌÇÏÀÇ <select>¿ä¼Ò´Â ÇÁ·Î±×·¥ Äڵ忡¼¡¸getBooksInfo¡¹¶ó°í ÇÏ´Â ID·Î ½Äº°µÇ¾î 2Çà°¿¡ ÀÖ´Â SELECT ¸í·ÉÀ» µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ ½ÇÇàÇÑ´Ù.
<select id="getBooksInfo" resultMap="booksResult"> SELECT isbn,title,price,publish,published FROM books WHERE publish=#value# </select>
¡¡±×¸®°í ¸ÅÇÎ ÆÄÀÏ ³»ÀÇ ÀÌÇÏ¿Í °°Àº <resultMap>¿ä¼ÒÀÇ ±â¼ú¿¡ µû¶ó¼, °Ë»ö °á°úÀÇ °¢ ÇÊµå °ªÀÌ Book ¿ÀºêÁ§Æ®ÀÇ °¢ ¼Ó¼º¿¡ ´ëÀԵȴٴ °ÍÀÌ´Ù.
<resultMap id="booksResult" class="Book"> <result property="Isbn" column="isbn" /> <result property="Title" column="title" /> <result property="Price" column="price" /> <result property="Publish" column="publish" /> <result property="Published" column="published" /> </resultMap>
¡¡SQL Äù¸®¿¡´Â ¡¸#value#¡¹(¹«¸í ÆÄ¶ó¹ÌÅÍ) ¶Ç´Â¡¸#ÆÄ¶ó¹ÌÅ͸í#¡¹(À̸§ ÆÄ¶ó¹ÌÅÍ)ÀÇ Çü½ÄÀ¸·Î Ç÷¹À̽º Ȧ´õ¸¦ ¼³Ä¡ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
¡¡¹«¸í ÆÄ¶ó¹ÌÅÍ´Â ÄÚµå ¾È¿¡¼µµ À̸§ µîÀ» ÀǽÄÇÏÁö ¾Ê°í, Á÷Á¢ °ªÀ» ¼¼Æ® ÇÒ ¼ö ÀÖ´Â °ÍÀÌ Æ÷ÀÎÆ®ÀÌ´Ù. Äù¸® ³»¿¡ Ç÷¹À̽º Ȧ´õ°¡ 1°³¹Û¿¡ ¾ø´Â °æ¿ì¿¡´Â ¹«¸í ÆÄ¶ó¹ÌÅ͸¦ ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î Äڵ带 °£´ÜÇÏ°Ô ±â¼úÇÒ ¼ö ÀÖ´Ù.
¡¡ÇÑÆí, Äù¸® ³»¿¡ Ç÷¹À̽º Ȧ´õ°¡ ¿©·¯ °³ Á¸ÀçÇÏ´Â °æ¿ì¿¡´Â À̸§ ÆÄ¶ó¹ÌÅ͸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ³ªÁß¿¡ ¼¼úÇϰÚÁö¸¸, À̸§ ÆÄ¶ó¹ÌÅ͸¦ ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î parameterClass ¼Ó¼ºÀ¸·Î ÁöÁ¤µÈ Ŭ·¡½º¿Í °°Àº À̸§ÀÇ ¼Ó¼º °ªÀÌ ÀÚµ¿À¸·Î ¼¼Æ®µÈ´Ù. Áï, À§ÀÇ ¸ÅÇÎ ÆÄÀÏÀÇ ¿¹(INSERT ¸í·É)¶ó¸é, Book.Isbn ¼Ó¼ºÀÇ °ªÀÌ # Isbn#ÆÄ¶ó¹ÌÅÍ¿¡, Book.Title ¼Ó¼ºÀÇ °ªÀÌ #Title#ÆÄ¶ó¹ÌÅÍ¿¡ °¢°¢ ÀÚµ¿À¸·Î SQL Äù¸®·Î ÇÒ´çµÈ´Ù´Â °ÍÀÌ´Ù. |