Ò».Java Database Connectivity (JDBC)
¡¡JDBC APIÒÔÒ»ÖÖͳһµÄ·½Ê½À´¶Ô¸÷ÖÖ¸÷ÑùµÄÊý¾Ý¿â½øÐдæÈ¡¡£ºÍODBCÒ»Ñù£¬JDBCΪ¿ª·¢ÈËÔ±Òþ²ØÁ˲»Í¬Êý¾Ý¿âµÄ²»Í¬ÌØÐÔ¡£ÁíÍ⣬ÓÉÓÚJDBC½¨Á¢ÔÚJavaµÄ»ù´¡ÉÏ,Òò´Ë»¹ÌṩÁËÊý¾Ý¿â´æÈ¡µÄƽ̨¶ÀÁ¢ÐÔ¡£
¡¡¡¡JDBC¶¨ÒåÁË4ÖÖ²»Í¬µÄÇý¶¯³ÌÐò£¬ÏÖ·ÖÊöÈçÏ£º
¡¡¡¡ÀàÐÍ 1: JDBC-ODBC Bridge
¡¡¡¡ÔÚJDBC³öÏֵijõÆÚ£¬JDBC-ODBCÇÅÏÔÈ»ÊǷdz£ÓÐʵÓÃÒâÒåµÄ£¬Í¨¹ýJDBC-ODBCÇÅ£¬¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃJDBCÀ´´æÈ¡ODBCÊý¾ÝÔ´¡£²»×ãµÄÊÇ£¬ËûÐèÒªÔÚ¿Í»§¶Ë°²×°ODBCÇý¶¯³ÌÐò£¬»»¾ä»°Ëµ£¬±ØÐë°²×°Microsoft WindowsµÄij¸ö°æ±¾¡£Ê¹ÓÃÕâÒ»ÀàÐÍÄãÐèÒªÎþÉüJDBCµÄƽ̨¶ÀÁ¢ÐÔ¡£ÁíÍ⣬ODBCÇý¶¯³ÌÐò»¹ÐèÒª¾ßÓпͻ§¶ËµÄ¿ØÖÆÈ¨ÏÞ¡£
¡¡¡¡ÀàÐÍ 2: JDBC-native driver bridge
¡¡¡¡JDBC±¾µØÇý¶¯³ÌÐòÇÅÌṩÁËÒ»ÖÖJDBC½Ó¿Ú£¬Ëü½¨Á¢ÔÚ±¾µØÊý¾Ý¿âÇý¶¯³ÌÐòµÄ¶¥²ã£¬¶ø²»ÐèҪʹÓÃODBC¡£ JDBCÇý¶¯³ÌÐò½«¶ÔÊý¾Ý¿âµÄAPI´Ó±ê×¼µÄJDBCµ÷ÓÃת»»Îª±¾µØµ÷Óá£Ê¹ÓôËÀàÐÍÐèÒªÎþÉüJDBCµÄƽ̨¶ÀÁ¢ÐÔ£¬»¹ÒªÇóÔÚ¿Í»§¶Ë°²×°Ò»Ð©±¾µØ´úÂë¡£
¡¡¡¡ÀàÐÍ 3: JDBC-network bridge
¡¡¡¡JDBCÍøÂçÇÅÇý¶¯³ÌÐò²»ÔÙÐèÒª¿Í»§¶ËÊý¾Ý¿âÇý¶¯³ÌÐò¡£ËüʹÓÃÍøÂçÉϵÄÖмä·þÎñÆ÷À´´æÈ¡Êý¾Ý¿â¡£ÕâÖÖÓ¦ÓÃʹµÃÒÔϼ¼ÊõµÄʵÏÖÓÐÁË¿ÉÄÜ£¬ÕâЩ¼¼Êõ°üÀ¨¸ºÔؾùºâ¡¢Á¬½Ó»º³å³ØºÍÊý¾Ý»º´æµÈ¡£ÓÉÓÚµÚ3ÖÖÀàÐÍÍùÍùÖ»ÐèÒªÏà¶Ô¸üÉÙµÄÏÂÔØÊ±¼ä£¬¾ßÓÐÆ½Ì¨¶ÀÁ¢ÐÔ£¬¶øÇÒ²»ÐèÒªÔÚ¿Í»§¶Ë°²×°²¢È¡µÃ¿ØÖÆÈ¨£¬ËùÒÔºÜÊʺÏÓÚInternetÉϵÄÓ¦Óá£
¡¡¡¡ÀàÐÍ 4: Pure Java driver
¡¡¡¡µÚ4ÖÖÀàÐÍͨ¹ýʹÓÃÒ»¸ö´¿JavaÊý¾Ý¿âÇý¶¯³ÌÐòÀ´Ö´ÐÐÊý¾Ý¿âµÄÖ±½Ó·ÃÎÊ¡£´ËÀàÐÍʵ¼ÊÉÏÔÚ¿Í»§¶ËʵÏÖÁË2²ã½á¹¹¡£ÒªÔÚN-²ã½á¹¹ÖÐÓ¦Óã¬Ò»¸ö¸üºÃµÄ×ö·¨ÊDZàдһ¸öEJB£¬ÈÃËü°üº¬´æÈ¡´úÂë²¢Ìṩһ¸ö¶Ô¿Í»§¶Ë¾ßÓÐÊý¾Ý¿â¶ÀÁ¢ÐԵķþÎñ¡£
¡¡¡¡WebLogic·þÎñÆ÷ΪһЩͨ³£µÄÊý¾Ý¿âÌṩÁËJDBCÇý¶¯³ÌÐò£¬°üÀ¨Oracle, Sybase, Microsoft SQL ServerÒÔ¼°Informix¡£ËüÒ²´øÓÐÒ»ÖÖJDBCÇý¶¯³ÌÐòÓÃÓÚCloudscape£¬ÕâÊÇÒ»ÖÖ´¿JavaµÄDBMS£¬WebLogic·þÎñÆ÷ÖдøÓиÃÊý¾Ý¿âµÄÆÀ¹À°æ±¾¡£
¡¡¡¡ÒÔÏÂÈÃÎÒÃÇ¿´Ò»¸öʵÀý¡£
¡¡¡¡JDBCʵÀý
¡¡¡¡ÔÚÕâ¸öÀý×ÓÖÐÎÒÃǼٶ¨ÄãÒѾÔÚCloudscapeÖн¨Á¢ÁËÒ»¸öPhoneBookÊý¾Ý¿â£¬²¢ÇÒ°üº¬Ò»¸ö±í£¬ÃûΪ CONTACT_TABLE £¬Ëü´øÓÐ2¸ö×ֶΣºNAME ºÍ PHONE¡£ ¿ªÊ¼µÄʱºòÏÈ×°ÔØCloudscape JDBC driver£¬²¢ÇëÇó driver managerµÃµ½Ò»¸ö¶ÔPhoneBook CloudscapeÊý¾Ý¿âµÄÁ¬½Ó¡£Í¨¹ýÕâÒ»Á¬½Ó£¬ÎÒÃÇ¿ÉÒÔ¹¹ÔìÒ»¸ö Statement ¶ÔÏó²¢ÓÃËüÀ´Ö´ÐÐÒ»¸ö¼òµ¥µÄSQL²éѯ¡£×îºó£¬ÓÃÑ»·À´±éÀú½á¹û¼¯µÄËùÓÐÊý¾Ý£¬²¢Óñê×¼Êä³ö½«NAMEºÍPHONE×ֶεÄÄÚÈݽøÐÐÊä³ö¡£
¡¡¡¡import java.sql.*;
¡¡¡¡public class JDBCExample
¡¡¡¡{
¡¡¡¡public static void main( String args[] )
¡¡¡¡{
¡¡¡¡try
¡¡¡¡{
¡¡¡¡Class.forName("COM.cloudscape.core.JDBCDriver");
¡¡¡¡Connection conn = DriverManager.getConnection("jdbc:cloudscape:PhoneBook");
¡¡¡¡Statement stmt = conn.createStatement();
¡¡¡¡String sql = "SELECT name, phone FROM CONTACT_TABLE ORDER BY name";
¡¡¡¡ResultSet resultSet = stmt.executeQuery( sql );
¡¡¡¡String name;
¡¡¡¡String phone;
¡¡¡¡while ( resultSet.next() )
¡¡¡¡{
¡¡¡¡name = resultSet.getString(1).trim();
¡¡¡¡phone = resultSet.getString(2).trim();
¡¡¡¡System.out.println( name ", " phone );
¡¡¡¡}
¡¡¡¡}
¡¡¡¡catch ( Exception e )
¡¡¡¡{
¡¡¡¡// Handle exception here
¡¡¡¡e.printStackTrace();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡OK¡£½Ó×ÅÎÒÃÇÀ´¿´Ò»¿´JDBCÊÇÈçºÎÔÚÆóÒµÓ¦ÓÃÖеĽøÐÐʹÓá£
¡¡¡¡JDBCÔÚÆóÒµ¼¶Ó¦ÓÃÖеÄÓ¦ÓÃ
¡¡¡¡ÒÔÉÏʵÀýÆäʵÊǺܻù±¾µÄ£¬¿ÉÄÜÓÐЩ΢²»×ãµÀ¡£Ëü¼Ù¶¨ÁËÒ»¸ö2²ã½á¹¹¡£ÔÚÒ»¸ö¶à²ãµÄÆóÒµ¼¶Ó¦ÓÃÖУ¬¸ü´óµÄ¿ÉÄÜÊÇÔÚ¿Í»§¶ËºÍÒ»¸öEJB½øÐÐͨÐÅ£¬¸ÃEJB½«½¨Á¢Êý¾Ý¿âÁ¬½Ó¡£ÎªÁËʵÏֺ͸Ľø¿ÉÉìËõÐÔºÍϵͳÐÔÄÜ£¬ WebLogic·þÎñÆ÷ÌṩÁ˶ÔÁ¬½Ó»º³å³Øconnection poolµÄÖ§³Ö¡£
¡¡¡¡Connection pool¼õÉÙÁ˽¨Á¢ºÍÊÍ·ÅÊý¾Ý¿âÁ¬½ÓµÄÏûºÄ¡£ÔÚϵͳÆô¶¯ÒԺ󼴿ɽ¨Á¢ÕâÑùµÄ»º³å³Ø£¬´ËºóÈç¹ÊÔÙÓжÔÊý¾Ý¿âµÄÇëÇó£¬WebLogic·þÎñÆ÷¿ÉÒԺܼòµ¥µØ´Ó»º³å³ØÖÐÈ¡³öÊý¾Ý¡£Êý¾Ý»º³å³Ø¿ÉÒÔÔÚWebLogic·þÎñÆ÷µÄ weblogic.properties ÎļþÖнøÐж¨Òå¡£(¿É²Î¿¼ weblogic.properties ÎļþÖеÄÀý×Ó£¬WebLogic·þÎñÆ÷µÄÎĵµÖл¹ÓиüÏêϸµÄ²Î¿¼ÐÅÏ¢)
¡¡¡¡ÔÚÆóÒµ¼¶Ó¦ÓõÄÁíÒ»¸ö³£¼ûµÄÊý¾Ý¿âÌØÐÔÊÇÊÂÎñ´¦Àí¡£ÊÂÎñÊÇÒ»×éÉêÃ÷statement£¬ËüÃDZØÐë×öΪͬһ¸östatementÀ´´¦ÀíÒÔ±£Ö¤Êý¾ÝÍêÕûÐÔ¡£È±Ê¡Çé¿öÏÂJDBCʹÓà auto-commit ÊÂÎñģʽ¡£Õâ¿ÉÒÔͨ¹ýʹÓÃConnectionÀàµÄ setAutoCommit() ·½·¨À´ÊµÏÖ¡£
¶þ.Java Naming and Directory Interface (JNDI)
¡¡¡¡JNDI API±»ÓÃÓÚÖ´ÐÐÃû×ÖºÍĿ¼·þÎñ¡£ËüÌṩÁËÒ»ÖµÄÄ£ÐÍÀ´´æÈ¡ºÍ²Ù×÷ÆóÒµ¼¶µÄ×ÊÔ´ÈçDNSºÍLDAP£¬±¾µØÎļþϵͳ£¬ºóÕßÔÚÓ¦Ó÷þÎñÆ÷ÖеĶÔÏó¡£
¡¡¡¡ÔÚJNDIÖУ¬ÔÚĿ¼½á¹¹ÖеÄÿһ¸ö½áµã³ÆÎªcontext¡£Ã¿Ò»¸öJNDIÃû×Ö¶¼ÊÇÏà¶ÔÓÚcontextµÄ¡£ÕâÀïûÓоø¶ÔÃû×ֵĸÅÄî´æÔÚ¡£¶ÔÒ»¸öÓ¦ÓÃÀ´Ëµ£¬Ëü¿ÉÒÔͨ¹ýʹÓà InitialContext ÀàÀ´µÃµ½ÆäµÚÒ»¸öcontext:
¡¡¡¡Context ctx = new InitialContext();
¡¡¡¡Ó¦ÓÿÉÒÔͨ¹ýÕâ¸ö³õʼ»¯µÄcontext¾ÓÐÕâ¸öĿ¼Ê÷À´¶¨Î»ËüËùÐèÒªµÄ×ÊÔ´»ò¶ÔÏó¡£ÀýÈ磬¼ÙÉèÄãÔÚWeblogic·þÎñÆ÷ÖÐÕ¹¿ªÁËÒ»¸öEJB²¢½«home½Ó¿Ú°ó¶¨µ½Ãû×Ö myApp.myEJB £¬ÄÇô¸ÃEJBµÄij¸ö¿Í»§ÔÚÈ¡µÃÒ»¸ö³õʼ»¯contextÒԺ󣬿ÉÒÔͨ¹ýÒÔÏÂÓï¾ä¶¨Î»home½Ó¿Ú£º
¡¡¡¡MyEJBHome home = ctx.lookup( "myApp.myEJB" );
¡¡¡¡ÔÚÕâ¸öÀý×ÓÖУ¬Ò»µ©ÄãÓÐÁ˶Ա»ÇëÇó¶ÔÏóµÄ²Î¿¼£¬EJBµÄhome½Ó¿Ú¾Í¿ÉÒÔÔÚËüÉÏÃæµ÷Ó÷½·¨¡£ÎÒÃǽ«ÔÚÏÂÃæµÄ"EntERPrise Java Beans"Õ½ÚÖÐ×ö¸ü¶àµÄ½éÉÜ¡£
¡¡¡¡ÒÔÉϹØÓÚJNDIµÄÌÖÂÛÖ»ÊDZùɽ֮һ½Ç¶øÒÑ¡£Èç¹ûÒª¸ü½øÒ»²½µØÔÚcontextÖвéÕÒ¶ÔÏó£¬JNDIÒ²ÌṩÁËһЩ·½·¨À´½øÐÐÒÔϲÙ×÷£º¡¡
ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!


