Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ150²¿·Ö
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡
¡¨SELECT¡¡FIRST£»¡¡LAST£»¡¡EMAIL¡¡¡¨¡¡£«¡¡¡¡
¡¨FROM¡¡people¡£csv¡¡people¡¡¡¨¡¡£«¡¡¡¡
¡¨WHERE¡¡¡¨¡¡£«¡¡¡¡
¡¨£¨LAST='¡¨¡¡£«¡¡args£§0£§¡¡£«¡¡¡¨'£©¡¡¡¨¡¡£«¡¡¡¡
¡¨¡¡AND¡¡£¨EMAIL¡¡Is¡¡Not¡¡Null£©¡¡¡¨¡¡£«¡¡¡¡
¡¨ORDER¡¡BY¡¡FIRST¡¨£©£»¡¡¡¡
¡¡¡¡
SQL¡¡»¹ÓÐÒ»ÖÖ·½Ê½¿É½«Ãû×Ö²åÈëÒ»¸ö²éѯ£¬ÃûΪ¡°³ÌÐò¡±£¨Procedures£©£¬ËüµÄËٶȷdz£¿ì¡£µ«¶ÔÓÚÎÒÃǵġ¡
´ó¶àÊýʵÑéÐÔÊý¾Ý¿â²Ù×÷£¬ÒÔ¼°Ò»Ð©³õ¼¶Ó¦Óã¬Óá¡Java¡¡¹¹½¨²éѯ×Ö´®ÒѾºÜ²»´íÁË¡£¡¡¡¡
´ÓÕâ¸öÀý×Ó¿ÉÒÔ¿´³ö£¬ÀûÓÃÄ¿Ç°Õҵõ½µÄ¹¤¾ß¡ª¡ªÌرðÊDzéѯ¹¹½¨¹¤¾ß¡ª¡ªÉæ¼°SQL¡¡¼°JDBC¡¡µÄÊý¾Ý¿â±à³ÌÊÇ¡¡
·Ç³£¼òµ¥ºÍÖ±¹ÛµÄ¡£¡¡¡¡
15¡£7¡£2¡¡²éÕÒ³ÌÐòµÄ¡¡GUI¡¡°æ±¾¡¡¡¡
×îºÃµÄ·½·¨ÊÇÈòéÕÒ³ÌÐòÒ»Ö±±£³ÖÔËÐУ¬Òª²éÕÒʲô¶«Î÷ʱֻÐè¼òµ¥µØÇл»µ½Ëü£¬²¢¼üÈëÒª²éÕÒµÄÃû×Ö¼´¡¡
¿É¡£ÏÂÃæÕâ¸ö³ÌÐò½«²éÕÒ³ÌÐò×÷Ϊһ¸ö¡°application/applet¡¡¡±´´½¨£¬ÇÒÌí¼ÓÁËÃû×Ö×Ô¶¯Ìîд¹¦ÄÜ£¬ËùÒÔ²»¡¡
±Ø¼üÈëÍêÕûµÄÐÕ£¬¼´¿É¿´µ½Êý¾Ý£º¡¡¡¡
¡¡¡¡
//£º¡¡VLookup¡£java¡¡¡¡
//¡¡GUI¡¡version¡¡of¡¡Lookup¡£java¡¡¡¡
import¡¡java¡£awt¡£*£»¡¡¡¡
import¡¡java¡£awt¡£event¡£*£»¡¡¡¡
import¡¡java¡£applet¡£*£»¡¡¡¡
import¡¡java¡£sql¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡VLookup¡¡extends¡¡Applet¡¡£û¡¡¡¡
¡¡¡¡String¡¡dbUrl¡¡=¡¡¡¨jdbc£ºodbc£ºpeople¡¨£»¡¡¡¡
¡¡¡¡String¡¡user¡¡=¡¡¡¨¡¨£»¡¡¡¡
¡¡¡¡String¡¡password¡¡=¡¡¡¨¡¨£»¡¡¡¡
¡¡¡¡Statement¡¡s£»¡¡¡¡
¡¡¡¡TextField¡¡searchFor¡¡=¡¡new¡¡TextField£¨20£©£»¡¡¡¡
¡¡¡¡Label¡¡pletion¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡Label£¨¡¨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨£©£»¡¡¡¡
¡¡¡¡TextArea¡¡results¡¡=¡¡new¡¡TextArea£¨40£»¡¡20£©£»¡¡¡¡
¡¡¡¡public¡¡void¡¡init£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡searchFor¡£addTextListener£¨new¡¡SearchForL£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Panel¡¡p¡¡=¡¡new¡¡Panel£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡p¡£add£¨new¡¡Label£¨¡¨Last¡¡name¡¡to¡¡search¡¡for£º¡¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡p¡£add£¨searchFor£©£»¡¡¡¡
¡¡¡¡¡¡¡¡p¡£add£¨pletion£©£»¡¡¡¡
¡¡¡¡¡¡¡¡setLayout£¨new¡¡BorderLayout£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡add£¨p£»¡¡BorderLayout¡£NORTH£©£»¡¡¡¡
¡¡¡¡¡¡¡¡add£¨results£»¡¡BorderLayout¡£CENTER£©£»¡¡¡¡
¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Load¡¡the¡¡driver¡¡£¨registers¡¡itself£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Class¡£forName£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨sun¡£jdbc¡£odbc¡£JdbcOdbcDriver¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Connection¡¡c¡¡=¡¡DriverManager¡£getConnection£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡580¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡582¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dbUrl£»¡¡user£»¡¡password£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡s¡¡=¡¡c¡£createStatement£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡results¡£setText£¨e¡£getMessage£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡class¡¡SearchForL¡¡implements¡¡TextListener¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡public¡¡void¡¡textValueChanged£¨TextEvent¡¡te£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ResultSet¡¡r£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡if£¨searchFor¡£getText£¨£©¡£length£¨£©¡¡==¡¡0£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pletion¡£setText£¨¡¨¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡£setText£¨¡¨¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Name¡¡pletion£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡r¡¡=¡¡s¡£executeQuery£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨SELECT¡¡LAST¡¡FROM¡¡people¡£csv¡¡people¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨WHERE¡¡£¨LAST¡¡Like¡¡'¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡searchFor¡£getText£¨£©¡¡¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨£¥'£©¡¡ORDER¡¡BY¡¡LAST¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if£¨r¡£next£¨£©£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pletion¡£setText£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡r¡£getString£¨¡¨last¡¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡r¡¡=¡¡s¡£executeQuery£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨SELECT¡¡FIRST£»¡¡LAST£»¡¡EMAIL¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨FROM¡¡people¡£csv¡¡people¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨WHERE¡¡£¨LAST='¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pletion¡£getText£¨£©¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨'£©¡¡AND¡¡£¨EMAIL¡¡Is¡¡Not¡¡Null£©¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ORDER¡¡BY¡¡FIRST¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡£setText£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡searchFor¡£getText£¨£©¡¡£«¡¡¡¨n¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡£append£¨e¡£getMessage£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return£»¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡results¡£setText£¨¡¨¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while£¨r¡£next£¨£©£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡£append£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡r¡£getString£¨¡¨Last¡¨£©¡¡£«¡¡¡¨£»¡¡¡¨¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£«¡¡r¡£getString£¨¡¨fIRST¡¨£©¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨£º¡¡¡¨¡¡£«¡¡r¡£getString£¨¡¨EMAIL¡¨£©¡¡£«¡¡¡¨n¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡results¡£setText£¨e¡£getMessage£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡VLookup¡¡applet¡¡=¡¡new¡¡VLookup£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡581¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡583¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡Frame¡¡aFrame¡¡=¡¡new¡¡Frame£¨¡¨Email¡¡lookup¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡aFrame¡£addWindowListener£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡new¡¡WindowAdapter£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡public¡¡void¡¡windowClosing£¨WindowEvent¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨0£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý£©£»¡¡¡¡
¡¡¡¡¡¡¡¡aFrame¡£add£¨applet£»¡¡BorderLayout¡£CENTER£©£»¡¡¡¡
¡¡¡¡¡¡¡¡aFrame¡£setSize£¨500£»200£©£»¡¡¡¡
¡¡¡¡¡¡¡¡applet¡£init£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡applet¡£start£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡aFrame¡£setVisible£¨true£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
Êý¾Ý¿âµÄÐí¶àÂß¼¶¼ÊÇÏàͬµÄ£¬µ«´ó¼Ò¿É¿´µ½ÕâÀïÌí¼ÓÁËÒ»¸ö¡¡TextListener£¬ÓÃÓÚ¼àÊÓÔÚTextField¡¡£¨Îı¾¡¡
×ֶΣ©µÄÊäÈë¡£ËùÒÔÖ»Òª¼üÈëÒ»¸öÐÂ×Ö·û£¬ËüÊ×ÏȾͻáÊÔ×ŲéÕÒÊý¾Ý¿âÖеġ°ÐÕ¡±£¬²¢ÏÔʾ³öÓ뵱ǰÊäÈëÏà¡¡
·ûµÄµÚÒ»Ìõ¼Ç¼£¨½«ÆäÖÃÈëpletion¡¡Label£¬²¢ÓÃËü×÷ΪҪ²éÕÒµÄÎı¾£©¡£Òò´Ë£¬Ö»ÒªÎÒÃǼüÈëÁË×ã¹»µÄ¡¡
×Ö·û£¬Ê¹³ÌÐòÄÜÕÒµ½ÓëÖ®Ïà·ûµÄΨһһÌõ¼Ç¼£¬¾Í¿ÉÒÔÍ£ÊÖÁË¡£¡¡¡¡
15¡£7¡£3¡¡JDBC¡¡API¡¡ÎªºÎÈçºÎ¸´ÔÓ¡¡¡¡
ÔÄÀÀJDBC¡¡µÄÁª»ú°ïÖúÎĵµÊ±£¬ÎÒÃÇÍùÍù»á²úÉúηÄÑÇéÐ÷¡£ÌرðÊÇDatabaseMetaData½Ó¿Ú¡ª¡ªÓëJava¡¡Öп´µ½¡¡
µÄ´ó¶àÊý½Ó¿ÚÏà·´£¬ËüµÄÌå»ýÏԵ÷dz£ÅӴ󡪡ª´æÔÚ×ÅÊýÁ¿ÖÚ¶àµÄ·½·¨£¬±ÈÈç¡¡
dataDefinitionCausesTransactionmit£¨£©£¬getMaxColumnNameLength£¨£©£¬getMaxStatementLength£¨£©£¬¡¡
storesMixedCaseQuotedIdentifiers£¨£©£¬supportsANSI92IntermediateSQL£¨£©£¬supportsLimitedOuterJoins£¨£©¡¡
µÈµÈ¡£ËüÃÇÓÐÕâ¶ùÓÐʲôÒâÒåÂ𣿡¡¡¡
ÕýÈçÔçÏÈÖ¸³öµÄÄÇÑù£¬Êý¾Ý¿âÆð³õÒ»Ö±´¦ÓÚÒ»ÖÖ»ìÂÒ״̬¡£ÕâÖ÷ÒªÊÇÓÉÓÚ¸÷ÖÖÊý¾Ý¿âÓ¦ÓÃÌá³öµÄÒªÇóÔì³É¡¡
µÄ£¬ËùÒÔÊý¾Ý¿â¹¤¾ßÏԵ÷dz£¡°Ç¿´ó¡±¡ª¡ª»»ÑÔÖ®£¬¡°ÅӴ󡱡£Ö»Êǽü¼¸Äê²ÅÓ¿ÏÖ³öÁËSQL¡¡µÄͨÓÃÓïÑÔ£¨³£¡¡
ÓõĻ¹ÓÐÆäËûÐí¶àÊý¾Ý¿âÓïÑÔ£©¡£µ«¼´±ãÏóSQL¡¡ÕâÑùµÄ¡°±ê×¼¡±£¬Ò²´æÔÚÎÞÊýµÄ±äÖÖ£¬ËùÒÔJDBC¡¡±ØÐëÌṩһ¡¡
¸ö¾Þ´óµÄDatabaseMetaData¡¡½Ó¿Ú£¬Ê¹ÎÒÃǵĴúÂëÄÜÕæÕýÀûÓõ±Ç°ÒªÁ¬½ÓµÄÒ»ÖÖ¡°±ê×¼¡±SQL¡¡Êý¾Ý¿âµÄÄÜÁ¦¡£¡¡
¼òÑÔÖ®£¬ÎÒÃǿɱàд³ö¼òµ¥µÄ¡¢ÄÜÒÆÖ²µÄ¡¡SQL¡£µ«Èç¹ûÏëÓÅ»¯´úÂëµÄÖ´ÐÐËٶȣ¬ÄÇôΪÁËÊÊÓ¦²»Í¬Êý¾Ý¿âÀà¡¡
Ð͵ÄÌص㣬ÎÒÃǵıàд´úÂëµÄÂé·³¾Í´óÁË¡£¡¡¡¡
µ±È»£¬Õâ²¢²»ÊÇJava¡¡µÄȱÏÝ¡£Êý¾Ý¿â²úÆ·Ö®¼äµÄ²îÒìÊÇÎÒÃǺÍJDBC¡¡¶¼ÒªÃæ¶ÔµÄÒ»¸öÏÖʵ¡£µ«ÊÇ£¬Èç¹ûÄܱࡡ
дͨÓõIJéѯ£¬¶ø²»±ØÌ«¹ØÐÄÐÔÄÜ£¬ÄÇôÊÂÇé¾ÍÒª¼òµ¥µÃ¶à¡£¼´Ê¹±ØÐë¶ÔÐÔÄÜ×÷Ò»·¬µ÷Õû£¬Ö»ÒªÖªµÀ×îÖÕÃæ¡¡
ÏòµÄƽ̨£¬Ò²²»±ØÕë¶ÔÿһÖÖÇé¿ö¶¼±àд²»Í¬µÄÓÅ»¯´úÂë¡£¡¡¡¡
ÔÚSun¡¡·¢²¼µÄJava¡¡1¡£1¡¡²úÆ·ÖУ¬ÅäÌ×ÌṩÁËһϵÁеç×ÓÎĵµ£¬ÆäÖÐÓжԡ¡JDBC¡¡¸üÈ«ÃæµÄ½éÉÜ¡£´ËÍ⣬ÔÚÓÉ¡¡
Hamilton¡¡Cattel¡¡ºÍ¡¡Fisher¡¡±àÖø¡¢Addison¡Wesley¡¡ÓÚ¡¡1997¡¡Äê³ö°æµÄ¡¶JDBC¡¡Database¡¡Access¡¡with¡¡Java¡·¡¡
ÖУ¬Ò²ÌṩÁËÓйØÕâÒ»Ö÷ÌâµÄÐí¶àÓÐÓÃ×ÊÁÏ¡£Í¬Ê±£¬ÊéµêÀïÒ²¾³£³öÏÖһЩÓйØJDBC¡¡µÄÐÂÊé¡£¡¡¡¡
15¡£8¡¡Ô¶³Ì·½·¨¡¡¡¡
Ϊͨ¹ýÍøÂçÖ´ÐÐÆäËû»úÆ÷ÉϵĴúÂ룬´«Í³µÄ·½·¨²»½öÄÑÒÔѧϰºÍÕÆÎÕ£¬Ò²¼«Ò׳ö´í¡£Ë¼¿¼Õâ¸öÎÊÌâ×î¼ÑµÄ·½¡¡
ʽÊÇ£ºÄ³Ð©¶ÔÏóÕýºÃλÓÚÁíһ̨»úÆ÷£¬ÎÒÃÇ¿ÉÏòËüÃÇ·¢ËÍÒ»ÌõÏûÏ¢£¬²¢»ñµÃ·µ»Ø½á¹û£¬¾ÍÏóÄÇЩ¶ÔÏóλÓÚ×Ô¡¡
¼ºµÄ±¾µØ»úÆ÷Ò»Ñù¡£Java¡¡1¡£1¡¡µÄ¡°Ô¶³Ì·½·¨µ÷Óá±£¨RMI£©²ÉÓõÄÕýÊÇÕâÖÖ³éÏó¡£±¾½Ú½«Òýµ¼´ó¼Ò¾ÀúһЩ¡¡
±ØÒªµÄ²½Ö裬´´½¨×Ô¼ºµÄRMI¡¡¶ÔÏ󡣡¡¡¡
15¡£8¡£1¡¡Ô¶³Ì½Ó¿Ú¸ÅÄî¡¡¡¡
RMI¡¡¶Ô½Ó¿ÚÓÐ×ÅÇ¿ÁÒµÄÒÀÀµ¡£ÔÚÐèÒª´´½¨Ò»¸öÔ¶³Ì¶ÔÏóµÄʱºò£¬ÎÒÃÇͨ¹ý´«µÝÒ»¸ö½Ó¿ÚÀ´Òþ²Ø»ù²ãµÄʵʩϸ¡¡
½Ú¡£ËùÒÔ¿Í»§µÃµ½Ô¶³Ì¶ÔÏóµÄÒ»¸ö¾ä±úʱ£¬ËüÃÇÕæÕýµÃµ½µÄÊǽӿھä±ú¡£Õâ¸ö¾ä±úÕýºÃͬһЩ±¾µØµÄ¸ù´úÂë¡¡
Á¬½Ó£¬ÓɺóÕ߸ºÔðͨ¹ýÍøÂçͨÐÅ¡£µ«ÎÒÃDz¢²»¹ØÐÄÕâЩÊÂÇ飬ֻÐèͨ¹ý×Ô¼ºµÄ½Ó¿Ú¾ä±ú·¢ËÍÏûÏ¢¼´¿É¡£¡¡¡¡
´´½¨Ò»¸öÔ¶³Ì½Ó¿Úʱ£¬±ØÐë×ñÊØÏÂÁйæÔò£º¡¡¡¡
£¨1£©¡¡Ô¶³Ì½Ó¿Ú±ØÐëΪpublic¡¡ÊôÐÔ£¨²»ÄÜÓС°°ü·ÃÎÊ¡±£»Ò²¾ÍÊÇ˵£¬Ëü²»ÄÜÊÇ¡°ÓѺõġ±£©¡£·ñÔò£¬Ò»µ©¿Í»§¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡582¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡584¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÊÔͼװÔØÒ»¸öʵÏÖÁËÔ¶³Ì½Ó¿ÚµÄÔ¶³Ì¶ÔÏ󣬾ͻáµÃµ½Ò»¸ö´íÎ󡣡¡¡¡
£¨2£©¡¡Ô¶³Ì½Ó¿Ú±ØÐëÀ©Õ¹½Ó¿Ú¡¡java¡£rmi¡£Remote¡£¡¡¡¡
£¨3£©¡¡³ýÓëÓ¦ÓóÌÐò±¾ÉíÓйصÄÎ¥ÀýÖ®Í⣬Զ³Ì½Ó¿ÚÖеÄÿ¸ö·½·¨¶¼±ØÐëÔÚ×Ô¼ºµÄthrows¡¡´Ó¾äÖÐÉùÃ÷¡¡
java¡£rmi¡£RemoteException¡£¡¡¡¡
£¨4£©¡¡×÷Ϊ²ÎÊý»ò·µ»ØÖµ´«µÝµÄÒ»¸öÔ¶³Ì¶ÔÏ󣨲»¹ÜÊÇÖ±½ÓµÄ£¬»¹ÊÇÔÚ±¾µØ¶ÔÏóÖÐǶÈ룩±ØÐëÉùÃ÷ΪԶ³Ì½Ó¡¡
¿Ú£¬²»¿ÉÉùÃ÷ΪʵʩÀà¡£¡¡¡¡
¡¡¡¡
ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÔ¶³Ì½Ó¿ÚʾÀý£¬Ëü´ú±íµÄÊÇÒ»¸ö¾«È·¼Æʱ·þÎñ£º¡¡¡¡
¡¡¡¡
//£º¡¡PerfectTimeI¡£java¡¡¡¡
//¡¡The¡¡PerfectTime¡¡remote¡¡interface¡¡¡¡
package¡¡c15¡£ptime£»¡¡¡¡
import¡¡java¡£rmi¡£*£»¡¡¡¡
¡¡¡¡
interface¡¡PerfectTimeI¡¡extends¡¡Remote¡¡£û¡¡¡¡
¡¡¡¡long¡¡getPerfectTime£¨£©¡¡throws¡¡RemoteException£»¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
Ëü±íÃæÉÏÓëÆäËû½Ó¿ÚÊÇÀàËƵģ¬Ö»ÊǶÔRemote¡¡½øÐÐÁËÀ©Õ¹£¬¶øÇÒËüµÄËùÓз½·¨¶¼»á¡°ÖÀ¡±³ö¡¡
RemoteException¡¡£¨Ô¶³ÌÎ¥Àý£©¡£¼Çס½Ó¿ÚºÍËüËùÓеķ½·¨¶¼ÊÇpublic¡¡µÄ¡£¡¡¡¡
15¡£8¡£2¡¡Ô¶³Ì½Ó¿ÚµÄʵʩ¡¡¡¡
·þÎñÆ÷±ØÐë°üº¬Ò»¸öÀ©Õ¹ÁËUnicastRemoteObject¡¡µÄÀ࣬²¢ÊµÏÖÔ¶³Ì½Ó¿Ú¡£Õâ¸öÀàÒ²¿ÉÒÔº¬Óи½¼ÓµÄ·½·¨£¬¡¡
µ«¿Í»§Ö»ÄÜʹÓÃÔ¶³Ì½Ó¿ÚÖеķ½·¨¡£ÕâÊÇÏÔÈ»µÄ£¬ÒòΪ¿Í»§µÃµ½µÄÖ»ÊÇÖ¸Ïò½Ó¿ÚµÄÒ»¸ö¾ä±ú£¬¶ø·ÇʵÏÖËüµÄ¡¡
ÄǸöÀà¡£¡¡¡¡
±ØÐëΪԶ³Ì¶ÔÏóÃ÷È·¶¨Òå¹¹½¨Æ÷£¬¼´Ê¹Ö»×¼±¸¶¨ÒåÒ»¸öĬÈϹ¹½¨Æ÷£¬ÓÃËüµ÷Óûù´¡À๹½¨Æ÷¡£±ØÐë°ÑËüÃ÷È·¡¡
µØ±àд³öÀ´£¬ÒòΪËü±ØÐë¡°ÖÀ¡±³ö¡¡RemoteException¡¡Î¥Àý¡£¡¡¡¡
ÏÂÃæÁгöÔ¶³Ì½Ó¿ÚPerfectTime¡¡µÄʵʩ¹ý³Ì£º¡¡¡¡
¡¡¡¡
//£º¡¡PerfectTime¡£java¡¡¡¡
//¡¡The¡¡implementation¡¡of¡¡the¡¡PerfectTime¡¡¡¡¡¡
//¡¡remote¡¡object¡¡¡¡
package¡¡c15¡£ptime£»¡¡¡¡
import¡¡java¡£rmi¡£*£»¡¡¡¡
import¡¡java¡£rmi¡£server¡£*£»¡¡¡¡
import¡¡java¡£rmi¡£registry¡£*£»¡¡¡¡
import¡¡java¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡PerfectTime¡¡¡¡¡¡
¡¡¡¡¡¡¡¡extends¡¡UnicastRemoteObject¡¡¡¡
¡¡¡¡¡¡¡¡implements¡¡PerfectTimeI¡¡£û¡¡¡¡
¡¡¡¡//¡¡Implementation¡¡of¡¡the¡¡interface£º¡¡¡¡
¡¡¡¡public¡¡long¡¡getPerfectTime£¨£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡throws¡¡RemoteException¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡//¡¡Must¡¡implement¡¡constructor¡¡to¡¡throw¡¡¡¡
¡¡¡¡//¡¡RemoteException£º¡¡¡¡
¡¡¡¡public¡¡PerfectTime£¨£©¡¡throws¡¡RemoteException¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡super£¨£©£»¡¡//¡¡Called¡¡automatically¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡//¡¡Registration¡¡for¡¡RMI¡¡serving£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡583¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡585¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£setSecurityManager£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡new¡¡RMISecurityManager£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡PerfectTime¡¡pt¡¡=¡¡new¡¡PerfectTime£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Naming¡£bind£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨//colossus£º2005/PerfectTime¡¨£»¡¡pt£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Ready¡¡to¡¡do¡¡time¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÔÚÕâÀmain£¨£©¿ØÖÆ×ÅÉèÖ÷þÎñÆ÷µÄÈ«²¿Ï¸½Ú¡£±£´æRMI¡¡¶ÔÏóʱ£¬±ØÐëÔÚ³ÌÐòµÄij¸öµØ·½²ÉÈ¡ÏÂÊö²Ù×÷£º¡¡¡¡
£¨1£©¡¡´´½¨ºÍ°²×°Ò»¸ö°²È«¹ÜÀíÆ÷£¬ÁîÆäÖ§³ÖRMI¡£×÷ΪJava¡¡·¢ÐаüµÄÒ»²¿·Ö£¬ÊÊÓÃÓÚRMI¡¡Î¨Ò»Ò»¸öÊÇ¡¡
RMISecurityManager¡¡¡£¡¡¡¡
£¨2£©¡¡´´½¨Ô¶³Ì¶ÔÏóµÄÒ»¸ö»ò¶à¸öʵÀý¡£ÔÚÕâÀ´ó¼Ò¿É¿´µ½´´½¨µÄÊÇPerfectTime¡¡¶ÔÏ󡣡¡¡¡
£¨3£©¡¡ÏòRMI¡¡Ô¶³Ì¶ÔÏó×¢²á±í×¢²áÖÁÉÙÒ»¸öÔ¶³Ì¶ÔÏó¡£Ò»¸öÔ¶³Ì¶ÔÏóÓµÓеķ½·¨¿ÉÉú³ÉÖ¸ÏòÆäËûÔ¶³Ì¶ÔÏóµÄ¾ä¡¡
±ú¡£ÕâÑùÒ»À´£¬¿Í»§Ö»Ðèµ½×¢²á±íÀï·ÃÎÊÒ»´Î£¬µÃµ½µÚÒ»¸öÔ¶³Ì¶ÔÏó¼´¿É¡£¡¡¡¡
¡¡¡¡
1¡£¡¡ÉèÖÃ×¢²á±í¡¡¡¡
ÔÚÕâ¶ù£¬´ó¼Ò¿É¿´µ½¶Ô¾²Ì¬·½·¨Naming¡£bind£¨£©¡¡µÄÒ»¸öµ÷Óá£È»¶ø£¬Õâ¸öµ÷ÓÃÒªÇó×¢²á±í×÷Ϊ¼ÆËã»úÉϵÄÒ»¡¡
¸ö¶ÀÁ¢½