Java EE 6ÒýÈëµÄJPA 2.0ËÄ´óÐÂÌØÐÔÏê½â
¡¾51CTO¾«Ñ¡ÒëÎÄ¡¿Java EE 5ƽ̨ÒýÈëÁËJava³Ö¾Ã»¯API£¨Java Persistence API£¬JPA£©£¬ËüΪJava EEºÍJava SEÓ¦ÓóÌÐòÌṩÁËÒ»¸ö»ùÓÚPOJOµÄ³Ö¾Ã»¯Ä£¿é¡£JPA´¦Àí¹ØÏµÊý¾ÝÓëJava¶ÔÏóÖ®¼äµÄÓ³É䣬Ëüʹ¶ÔÏó/¹ØÏµ£¨O/R£©Ó³Éä±ê×¼»¯£¬JPAÒѾ±»¹ã·º²ÉÓã¬ÒѾ³ÉΪÊÂʵÉϵÄO/R³Ö¾Ã»¯ÆóÒµ±ê×¼¡£
Java EE 6´øÀ´ÁËJPAµÄ×îа汾 — JSR 317£ºJava³Ö¾Ã»¯2.0£¬JPA 2.0´øÀ´ÁËÐí¶àÐÂÌØÐÔºÍÔöÇ¿£¬°üÀ¨£º
1¡¢¶ÔÏó/¹ØÏµÓ³ÉäÔöÇ¿£»
2¡¢Java³Ö¾Ã»¯²éѯÓïÑÔÔöÇ¿£»
3¡¢Ò»ÖÖеĻùÓÚ±ê×¼µÄ²éѯAPI£»
4¡¢Ö§³Ö±¯¹ÛËø¶¨¡£
¶ÔÏó/¹ØÏµÓ³ÉäÔöÇ¿
JPA 1.0Ö§³Ö¼¯ºÏµÄÓ³É䣬µ«ÕâЩ¼¯ºÏÖ»Äܰüº¬ÊµÌ壬JPA 2.0Ôö¼ÓÁ˼¯ºÏÓ³ÉäµÄ»ù´¡Êý¾ÝÀàÐÍ£¬ÈçStringºÍInteger£¬ÒÔ¼°Ç¶Èëʽ¶ÔÏóµÄ¼¯ºÏ¡£JPAÖеÄǶÈëʽ¶ÔÏóÊÇÒ»¸ö²»ÄÜ´æÔÚÓÚËü×ÔÉíµÄ¶ÔÏ󣬶øÊÇ×÷Ϊ¸¸¶ÔÏóµÄÒ»²¿·Ö´æÔÚ£¬¼´ËüµÄÊý¾Ý²»ÊÇ´æÔÚÓÚËü×Ô¼ºµÄ±íÖУ¬¶øÊÇǶÈëÔÚ¸¸¶ÔÏóµÄ±íÖС£
JPA 2.0Ôö¼ÓÁËÁ½¸öÖ§³ÖÐµļ¯ºÏÓ³ÉäµÄ×¢½â£º@ElementCollection ºÍ @CollectionTable¡£Ê¹ÓÃ@ElementCollection×¢½âÖ¸¶¨¼¯ºÏµÄǶÈëʽ¶ÔÏó£¬ÕâЩ¼¯ºÏÊǶÀÁ¢´æ´¢ÔÚ¼¯ºÏ±íÖеģ¬Ê¹ÓÃ@CollectionTable×¢½âÖ¸¶¨¼¯ºÏ±íµÄÏêϸÐÅÏ¢£¬ÈçËü°üº¬µÄÁС£
ÏÂÃæÊÇÒ»¸öǶÈëʽÀ࣬±íʾÁ˳µÁ¾µÄ·ÃÎÊ·þÎñ£¬Ëü´æ´¢ÁË·ÃÎʵÄÈÕÆÚ£¬ÃèÊöºÍ·ÑÓ㬴ËÍ⣬³µÁ¾¿ÉÒÔÅ䱸һ»ò¶à¸ö¿ÉÑ¡¹¦ÄÜ£¬Ã¿¸ö¹¦ÄÜÊÇFeatureTypeÀàÐ͵ÄÒ»¸öö¾ÙÖµ¡£
public enum FeatureType { AC, CRUISE, PWR, BLUETOOTH, TV, ... } @Embeddable public class ServiceVisit { @Temporal(DATE) @Column(name="SVC_DATE") Date serviceDate; String workDesc; int cost; }
ö¾ÙÖµºÍǶÈëʽ¶ÔÏó¿ÉÒÔÔÚÒ»¸ö±íʾ³µÁ¾·þÎñÀúÊ·µÄʵÌåÖÐʹÓã¬È磺
@Entity public class Vehicle { @Id int vin; @ElementCol
Ïà¹ØÎĵµ£º
ÆäʵҲ²»ÊÇÅÀÍøÒ³£¬Ö»ÊÇ´ÓÒ»¸öXMLÎļþÈ¡URL£¬È»ºó×¥È¡ÍøÒ³ÄÚÈÝ¡£
Ö÷ÒªÓм¸µã£¬±¸Íü£º
1. È«¾Ö´úÀí£¬ÉèÖÃÖ®ºóËùÓеÄURL¶¼Ê¹Óô˴úÀí£¬ÕâÑù¿ÉÒÔÖ±½Óµ÷ÓÃFileUtils.copyURLToFile£º
private void initProxy(String host, int port,
final String username, final String password) {
Authenticator.setDefault(new Aut ......
JAVA¶¯Ì¬´úÀíÄÚ²¿ÊµÏÖ
Ò»¡¡´úÀíÉè¼ÆÄ£Ê½
´úÀíģʽΪĿ±ê¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔʵ¼Ê¶ÔÏóµÄ·ÃÎÊ¡£ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷Óá£
ΪÁ˱£³ÖÐÐΪµÄÒ»ÖÂÐÔ£¬´úÀíÀàºÍʵ¼ÊίÍÐÀàͨ³£»áʵÏÖÏàͬµÄ½Ó¿Ú£¬ËùÒÔÔÚ·ÃÎÊÕß¿´À´Á½ÕßûÓÐË¿ºÁµÄÇ ......
ÏîÄ¿¾ÀíµÄÖ°Ôð£º
1¡¢»ù±¾Ö°Ôð¾ÍÊÇÈ·±£ÏîĿĿ±êµÄʵÏÖ£¬Áìµ¼ÏîÄ¿ÍŶÓ׼ʱ¡¢ÓÅÖʵØÍê³ÉÈ«²¿¹¤×÷¡£
2¡¢Óë¿Í»§¹µÍ¨£¬Á˽âÏîÄ¿µÄÕûÌåÐèÇó¡£²¢Óë¿Í»§±£³ÖÒ»¶¨µÄÁªÏµ£¬¼°Ê±·´À¡½×¶ÎÐԳɹû£¬¼°Ê±¸ü¸Ä¿Í»§Ìá³öµÄºÏÀíÐèÇó¡£
3¡¢Öƶ¨ÏîÄ¿¿ª·¢¼Æ»®Îĵµ£¬Á¿»¯ÈÎÎñ£¬²¢ºÏÀí·ÖÅ䏸Ïà¹ØÈËÔ±¡£
4¡¢¸ú×ÙÏîÄ¿½ø¶È£¬Ðµ÷ÏîÄ¿×é³ÉÔ±Ö®¼äµÄºÏ ......
String newStr = new String(oldStr.getBytes(), "UTF-8");
javaÖеÄStringÀàÊǰ´ÕÕunicode½øÐбàÂëµÄ£¬µ±Ê¹ÓÃString(byte[] bytes, String encoding)¹¹Ôì×Ö·û´®Ê±£¬encodingËùÖ¸µÄÊÇbytesÖеÄÊý¾ÝÊǰ´ÕÕÄÇÖÖ·½Ê½±àÂëµÄ£¬¶ø²»ÊÇ×îºó²úÉúµÄStringÊÇʲô±àÂ뷽ʽ£¬»»¾ä»°Ëµ£¬ÊÇÈÃϵ ......
1.2 ¹¤³§·½·¨£¨Factory Method£©Ä£Ê½
¹¤³§·½·¨Ä£Ê½ÊÇÀàµÄ´´½¨Ä£Ê½£¬ÓÖ½ÐÐéÄâ¹¹Ôì×Ó£¨Virtual Constructor£©Ä£Ê½»òÕß¶à̬ÐÔ¹¤³§£¨Polymorphic Factory£©Ä£Ê½¡£
¹¤³§·½·¨Ä£Ê½µÄÓÃÒâÊǶ¨ÒåÒ»¸ö´´½¨²úÆ·¶ÔÏóµÄ¹¤³§½Ó¿Ú£¬½«Êµ¼Ê¹¤×÷ÍÆ³Ùµ½×ÓÀàÖС£
1.2.1 ¹¤ ......