|
ChinaUnix ->
SYBASE¼¼Êõ ->
¼¼ÊõÎÄÕ ->iAnywhere -> ÕýÎÄ
Sybase SQL Studio 6.0.3³ÌÐòÔ±Ö¸ÄÏ£¨¶þ£©
ÈÕÆÚ£º2007-06-21 ChinaUnix.net
ΪÁ˶ÔJava´æ´¢¹ý³ÌÓиöÓ¡Ïó£¬ÎÒдÁËÏÂÁдúÂ룺 import java.sql.*; // JDBC import com.sybase.jdbc.*; // Sybase jConnect import java.util.Properties; // Properties import sybase.sql.*; // Sybase utilities
public class listing3{ private static Connection conn;
public static int GetContactBuddy(Integer i){ //This is where our result will go: default to 0 String id = i.toString(); int buddy_id = 0; try { //Stored Procedures use a special JDBC URI conn = DriverManager.getConnection("jdbc:default:connection"); //Create a JDBC statement and make the query String qstr = "SELECT zip FROM contact WHERE id = " + id; Statement stmt = conn.createStatement(); ResultSet results = stmt.executeQuery(qstr); int zip = 0; //Get the zip code, if we can if (results.next()){ zip = results.getInt(1); } System.out.println(zip);
if (zip != 0){ //Now query a matching ID from the employee table Integer z = new Integer(zip); qstr = "SELECT emp_id FROM employee WHERE zip_code = " + z.toString(); results = stmt.executeQuery(qstr); if (results.next()){ buddy_id = results.getInt(1); } } System.out.println(buddy_id); } catch ( Exception e ) { System.out.println("Error: " + e.getMessage()); e.printStackTrace(); } //Return the employee ID, if we found one return buddy_id; } }
Ôö¼ÓÒ»¸ö´æ´¢¹ý³Ì»òº¯Êý¿´ÆðÀ´ºÜ¼òµ¥¡£Äãд³öÀಢÇÒµ¼Èë(import)Êʵ±µÄ°ü(package)£¬È»ºó¼òµ¥µØ±àд¹ý³Ì»òº¯Êý£¬°ÑÕâЩ¹ý³Ì»òº¯Êý×÷Ϊ¹«¹²ÀàµÄ¾²Ì¬·½·¨´æ´¢Æ÷À´(¶ÔÊý¾Ý¿â´æÈ¡Ê¹ÓÃJDBC)¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬ÎÒÃǶ¨Ò庯ÊýGetContactBuddy£¬Ëüȡһ¸öÕûÊý²¢ÇÒ·µ»ØÒ»¸öÕûÊý¡£
ÎÒʹÓÃÁËSybase×Ô´øÑùÆ·Êý¾Ý¿â£¬Ëü°üº¬¹ÍÔ±¡¢²¿ÃźͺÏͬµÄ±í(table)¡£ÎÒССµÄÑÝʾº¯ÊýµÄÏë·¨ÊÇÎÒÃǾö¶¨ÁËÔÚÎÒÃǵĹ«Ë¾ÊµÏÖÒ»¸ö»ï°éϵͳ£¬ËùÓеĺÏͬ¶¼ÓÐÒ»¸ö»ùÓÚµØÀíλÖùÍÔ±»ï°é¡£»ù±¾ÉÏ£¬ÎÒÃÇÓÃÓëÓÊÕþ±àÂëÏàͬµÄºÏͬºÅÌôÑ¡¹ÍÔ±¡£Javaº¯Êý°ïÖúÎÒÃÇÑ¡Ôñ¡£Èç¹ûÄã´«À´Ò»¸öºÏͬºÅ£¬Ëü½«·µ»ØÒ»¸öλÓÚÏàͬÓÊÕþ±àÂëµÄÒ»¸ö¹ÍÔ±±êʶ·û(Èç¹ûÓÐ)£¬µ±È»Èç¹ûûÓУ¬ÎÒ¾ÍÄÜÓÃÒ»¸öÁ¬½Ó(join)´Óµ¥¶ÀµÄ²éѯµÃµ½½á¹û£º
select e.emp_id from employee e, contact c where e.zip_code = c.zip
µ«ÊÇÄǽ«ÊǸü¼ÓûȤ¡£
ΪÁËʹÓøú¯Êý£¬ÎÒÃDZØÐëÊ×ÏȱàÒëËü£¬½«ÉÏÃæ´úÂ뿽±´µ½listing3.java£¬²¢ÇÒÔËÐÐÃüÁ
$ javac listing3.java
ÁíÍ⣬ÄãÐèÒªJDK 1.1.x²¢ÔÚCLASSPATHÖаüÀ¨$SYBASE/java/asajdbc.zip¡£µ±È»£¬ÉÏÊöÃüÁîÉú³Élisting3.class¡£
ÏÖÔÚ£¬ÎÒÃÇÔÚÑùÆ·Êý¾Ý¿âÖеǼÇËü¡£Í¨¹ýSybase CentralÎÒÃǺÜÈÝÒ××öµ½£¬ÔÚÊ÷״ͼÖÐÑØ×Åasademo/Java Objects·¾¶£¬µã»÷Add Java Class»òJarͼ±ê¡£Java Wizard(JavaÏòµ¼)½«Ñ¯ÎÊÄãÊÇ·ñµÇ¼ÇÒ»¸öÀà»òÒ»¸öJava¹éµµ(jar)£¬È»ºóÄãÖ¸¶¨ÀàÎļþµÄ·¾¶£¬È«²¿¸ã¶¨¡£
ÄãÄÜͨ¹ý±ê×¼SQLÓï¾äµ÷Óú¯Êý£¬ÔËÐÐISQL²¢ÇÒ½øÈëÃüÁî´°¿Ú£º select listing3>>GetContactBuddy('7')
Ëü±»µ±×÷³£¹æµÄSQLÑ¡Ôñ£¬´Óº¯Êý·µ»ØÕûÊýÖµ¡£Èç¹ûÄãÕýÔÚʹÓÃÑùÆ·Êý¾Ý¿â£¬»Ø´ðÓ¦¸ÃÊÇ409¡£Èç¹ûÎÒÃǵÄÀඨÒå³ÉÒ»¸ö¹ý³Ì(Ò»¸öûÓзµ»Ø·½·¨)¡£ÎÒÃÇÄÜÕâÑùµ÷ÓÃËü£º
call java_class>>method_name(arguments)
Äã¿ÉÄÜ×¢ÒâÁËJava´úÂëÖеĴòÓ¡Óï¾ä£¬ÀýÈ磺 System.out.println(zip);
²¢ÇÒÄã¿ÉÄÜÒ»Ö±ÏëÖªµÀËûÃǵÄÊä³öÔÚÄĶù³öÏÖ¡£´æ´¢¹ý³Ì½«Êý¾Ý¿âÒýÇæµÄstdoutºÍstderr×÷Ϊ¿ØÖÆÌ¨£¬Òò´ËÈç¹ûÄãµ½ÕýÔÚÔËÐÐdbeng6µÄÖÕ¶Ë£¬Ä㽫¿´¼ûÊä³ö¡£Èç¹ûÓÐÈκÎÒì³££¬ÄãÒ²½«¿´¼ûÕ»¸ú×Ù¡£
ËùÓÐÕâÐ©ËÆºõ×ã¹»Ö±¹Û£¬µ«ÊÇÎÒÔÚ¼òµ¥µÄ´æ´¢¹ý³Ì±à³ÌÖеÄÑÚ¸ÇÁ˾޴óµÄ·³ÄÕ£¬ËûÃÇ´ó¶àÊýȷʵӦ¸ÃÌáÒ»Ìá¡£
ËùÓÐÕâÐ©ËÆºõ×ã¹»Ö±¹Û£¬µ«ÊÇÎÒÔÚ¼òµ¥µÄ´æ´¢¹ý³Ì±à³ÌÖеÄÑÚ¸ÇÁ˾޴óµÄ·³ÄÕ£¬ËûÃÇ´ó¶àÊýȷʵӦ¸ÃÌáÒ»Ìá¡£
²»×ã
Ê×ÏÈ£¬Sybase CentralÂýµØ¾ªÈË¡£ÎÒ²ÂÏëÕâÊÇʹÓÃÔ¶³ÌÊý¾Ý¿âAPIºÍJavaÔì³ÉµÄ²»¿É±ÜÃâµÄºó¹ûÖ®Ò»£¬µ«ÊDz»Ìá̫ʹ¿àÁË¡£Ò²ÐíSybaseÄÜͨ¹ý¿ª·¢Ò»¸öGTK¡¢KDE»òWxWindows°æ±¾µÄ½çÃæ£¬²ÅÄܸüºÃµØÏòLinux°®ºÃÕßչʾ¡£
ÁíÒ»¸öÎÊÌâÊÇÎÒÖ»ÄÜͨ¹ýÔÚSybase CentralÊ÷״;ÖеÄasademo/Java Objects/Packages·¾¶¶¨Î»ÎҵǼǵÄÀ࣬ÎÊÌâÊǼ¸ºõËùÓÐsun(¹ÊÒâÓÃË«¹ØÓï)ÏÂÃæµÄJavaÀàÒ²³öÏÖÔڸñíÖÐ,ËüÓ뼫ÂýµÄ¹ö¶¯Ò»Æð£¬Ê¹µÃѰÕÒÒ»¸öÌØ¶¨ÀàµÄÒªÇó±äµÃÄÑÉϼÓÄÑ¡£¶øÇÒ£¬×Ô´ÓÄãͨ¹ýÀàͼ±êµÄÊôÐԲ˵¥½«Èκθ͝ÔÙ×°Èëµ½ÄãµÄ¹ý³Ìºó£¬µ±¿ª·¢²¢µ÷ÊÔÄãµÄ´úÂëʱ£¬Äã¿ÉÄܱØÐë¶à´Î½øÐÐÕâÖÖËÑË÷¡£½ÄÐÒµÄÊÇ£¬´æ´¢¹ý³ÌʹÓÃJDBC£¬Òò´ËÎ§ÈÆ´ËÎÊÌ⻹ÓÐÒ»¸öºÃ·½·¨£º¸øÄãµÄÀàÔö¼ÓmainÒÔÔÊÐíËûÃdzÉΪԶ³ÌÓ¦ÓõÄʵÓÃÊֶΡ£ÕâÔÊÐíÄãÔÚ²»µÃ²»ÔÚÊý¾Ý¿âµÇ¼ÇËûÃǶøÓöµ½Â鷳ǰ£¬ÓÃÒ»¸ö¼òµ¥µÄ±àÒë/Ö´ÐÐÖÜÆÚ¼´¿É²¶×½Ðí¶à³ô³æ£¬µ«ÊÇÕâ¸ö½â¾ö°ì·¨ÓÐµãÆæÌØ£¬¿¼ÂDzúÆ·ÊÇÒ»¸öÊý¾Ý¿â¹ÜÀíϵͳ£¬²¢ÇÒDBMSÓ¦µ±°ïÖú¹ÜÀíÄãµÄÊý¾Ý¡£Sybase²¢Ã»ÓÐ˵ËüΪ½â¾öÌáµ½µÄ´óÁ¿ÎÊÌâ¶øÕýÔÚÑÐÖÆ¹ýÂËÆ÷¡£
ÖÁÓÚISQL£¬ÎÒ·¢ÏÖ£¬Èç¹ûÎҸıäÁË·þÎñÆ÷¶ËµÄ´úÂ룬 ISQLÖ±µ½ÎÒÖØÐÂÁ¬½Óµ½Êý¾Ý¿â²Åʶ±ð³ö±ä»¯¡£Õâʵ¼ÊÉÏʽһ¼þºÃÊ£Ëü±£Ö¤ÕýÔÚÔËÐеÄÓ¦Óý«²»»áͻȻ·¢ÏÖËûÃǵķþÎñÆ÷¶Ë×é¼þ×ÔÐи͝¡£µ«ÊÇËüû±»Îĵµ¼Ç¼£¬²¢ÇÒÎÒÀË·ÑÁËһЩʱ¼ä³¢ÊÔŪÃ÷°×ΪʲôÎҵĸıäû±»¿Í»§µÇ¼Ç¡£ÎÒÒ²·¢ÏÖÁËÈç¹ûÄãÔÚÒ»¸ö¹ý³Ì»òº¯ÊýʹÓôíÎóµÄ²ÎÊýÀàÐÍ»òÊýÁ¿£¬·þÎñÆ÷½«·µ»ØÒ»¸ö¡°¹ý³ÌûÕÒµ½¡±µÄ´íÎó¡£ÎÒÏëÕâÊÇÒòΪËûÃÇʹÓÃÒ»¸öÂÒÃû(name-mangling)¼¼ÊõÒÔÔÊÐí¹ý³ÌÃû×ֵĶà̬ÐÔ¡£µ«ÊÇÕâÔÚÊý¾Ý¿â´æ´¢¹ý³ÌµÄÉÏÏÂÎÄÓÐЩ»ìÂÒ¡£ÔÙÕߣ¬ºó¶ËºÃÏñ²»Ìṩ±ê×¼Java°ü×°(wrapper)Àà×÷Ϊ²ÎÊýµÄ±ä»»Æ÷(ÏñIntegerºÍDoubleÄÇÑù)£¬ÓÃÈçInteger»òDoubleÄÇÑùµÄÔÓ·ñÔòÄ㽫Óöµ½¡°¹ý³ÌûÕÒµ½¡±µÄ´íÎó¡£
µ«ÊÇÒ»µ©ÄãÊìϤËü£¬Ê¹ÓÃSybase SASµÄJava´æ´¢¹ý³ÌÊǺÜÈÝÒ׵ģ¬Òª¿¼Âǵ½ËüÊÇÒ»Öָ߼¶ÌØÐÔ¡£
¹ÜÀí
Sybase ÌṩºÜ¶à»ù±¾µÄÊý¾Ý¿â¹ÜÀí¹¤¾ßÓÃÓÚ°²È«ÐÔ¡¢ÍøÂçÁ¬½Ó¡¢Êý¾Ý¿â¸´ÖÆ¡¢´æ´¢¹ý³Ì¹ÜÀíµÈ¡£Sybase CentralÒÔÊ÷×´½á¹¹Ìṩ´æ´¢¹ý³ÌºÍÓû§×ÊÁϵȵÄÊý¾Ý¿âÐÅÏ¢¡£Sybase½«ËüµÄ¸´ÖÆ´úÀíÒÆÖ²µ½Linux£¬ËüÔÊÐíDBA°ÑÊý¾Ý¿âÒԸ߶ȶ¨ÖƵķ½·¨¸´ÖÆ¡£È»¶ø£¬Sybase¹«Ë¾»¹Ã»ÒÆÖ²ËüµÄ¸´ÖÆ·þÎñÆ÷µ½Linuxƽ̨(¾¡¹ÜËü˵¹¤×÷ÕýÔÚ½øÐÐ)¡£Èç¹ûÄãÏëΪÄãµÄÊý¾Ý¿âÌṩASEµÄÈ«²¿¶¯Á¦£¬Ö»Óе½ÕâÑùµÄÒÆÖ²³ÉÐΣ¬·ñÔòÄãÎÞ·¨ÔËÐе¥¶ÀÔÚÒ»¸ö²»Í¬µÄƽ̨ÉÏÔËÐÐASE¸´ÖÆ·þÎñÆ÷(ÀýÈçSolaris)¡£È»ºóÄãÄÜÔÚLinuxϵͳÉÏÔËÐÐʵ¼ÊµÄÊý¾Ý¿â£¬Ê¹Óø´ÖÆ´úÀíµÄLinux°æ±¾¡£×¢ÒâÄÇÖÖµÍÆµ¡¢¼òµ¥µÄ¸´ÖÆÒ²ÓÃSQL Remote¹ÜÀí¶ø²»±Ø¸ÉÈÅÒ»¸öµ¥¶ÀÊý¾Ý¿â¡£
SybaseÒѾŬÁ¦¼õÉÙµ÷½ÚºÍ¹ÜÀíÆóÒµ¼¶Êý¾Ý¿â¹ÜÀíϵͳµÄ´ó²¿·Ö¸´ÔÓÐÔ¡£ÓÐÒ»¸öÄÚÖõIJéѯÓÅ»¯³ÌÐòÄÜ´ÓÔçÏȵÄѯÎÊѧϰÒÔ±äµÃ¸ü´ÏÃ÷£¬¶¯Ì¬ÓÅ»¯¶ø·ÇÒªÇóºÜ¶àÃØ´«µÄÊý¾Ý¿â¹ÜÀíÔ±µÄ¾ø¼¼£¬ÒòΪDBMSÊǹ«¿ªµÄ¡£×îÖÕÄ¿±êÊÇÔÊÐí·ÇÊý¾Ý¿â¹ÜÀíÄÜÓÐЧµØÔËÓÃÊý¾Ý¿â¡£SybaseÍê³ÉÒ»²¿·ÖÕâ¸öÖµµÃ³ÆµÀµÄÄ¿±ê£¬ÉõÖÁ´Ó°æ±¾6.0.3¿ªÊ¼Ïû³ýһЩȱÏÝ£¬ÀýÈ磬Ϊһ¸öʹÓÃ-cÑ¡ÏîÆô¶¯µÄSQL·þÎñÆ÷ʵÀý(instancs)µ÷½Ú»º´æ´óС£¬¹ýÈ¥Ò»Ö±ºÜÖØÒª(Ò»°ãµ½ÆÚÍûµÄÊý¾Ý¿â×î´ó³ß´çµÄ´óÔ¼20%)¡£Ò²ÓбØÒªÊ¹ÓÃ-pÑ¡ÏîÔö¼ÓÍøÂç°ü³ß´ç£¬ÏÖÔÚÕâÑùµÄ²ÎÊýÉèÖÃÓиü¼ÓÖÇÄÜ»¯µÄĬÈÏÖµ¡£
½áÂÛÓëһЩ¹¤¾ß
ÓкܶàSybaseµÚÈý·½ Linux³ÌÐò¡£Èç¹ûÄãÏ£ÍûʹÓÃODBC£¬OpenlinkµÄODBCÇý¶¯³ÌÐòÊÇÒ»¸öºÃÑ¡Ôñ¡£PathonÓû§¿ÉÒÔ½áºÏÏñMarc-Andre LemburgµÄmxODBCÄ£¿éÀ´·ÃÎÊSybase£¬ÒòΪPythonûÓÐÖ±½ÓµÄÀ¦°ó¡£TclÓû§ÓеãÐÒÔË£ºËûÃÇÓÐTom PoindexterµÄSybtcl£¬ËüÊÇTclµÄÒ»¸öÔÉúSybase¿â¡£Scott Gray±àдÁËSQSH£¬ËüÊÇ
Ò»¸öºÜÊÜ»¶ÓµÄ ISQLÌæ»»Æ·£¬ËüÉè¼Æ³É·ÂÕæµäÐ͵ÄUnixÍâ¿Ç¡£Martin MevaldÓÃPHP±àдÁËÒ»¸ö¼òµ¥µÄ»ùÓÚWebµÄ²éѯ½Ó¿Ú¡£Walter Rawdanik×î½üÌá³öÁËSybSQL£¬Ò»¸öÓÃQt¹¤¾ß°ü±àдµÄSQL±à¼Æ÷£¬ËüÓÃTDSÐÒéÁ¬½ÓSybase ASE»òMicrosoft SQL Server¡£×îºó£¬ÓÐÒ»¸öÃâ·ÑÈí¼þ·½°¸-FreeTDS£¬Ëü´´½¨Ò»¸ö¿âÔÚ±¨Îļ¶±í¸ñʽÊý¾ÝÁ÷À´·ÃÎÊSybase¡£µ±SybaseûÓÐÒ»¸öLinux¿Í»§Ê±£¬ÕâÏԵøü¼Ó¹Ø¼ü£¬µ«ÊÇΪÁËSybaseÊý¾Ý¿âд²Ù×÷¸üÓÐЧ£¬µ×²ãµÄ¹¤¾ßÈÔÈ»ÊǺ÷½·¨¡£Î¢ÈíµÄSQL Server£¬Ëü´ÓSybase¼Ì³ÐÁËTDS£¬ËùÒÔÒ²ÄÜʹÓà FreeTDS±»·ÃÎÊ£¬Çë²Î¼û¸½Â¼×ÊÔ´Á¬½Ó¡£ ÓÐÒ»¼þÊÂÇéÊÇÏ൱Çå³þ£ºSybase for Linux±ØOracle 8.0.5 for Linux»òDB2 6.0 for Linux¸üÈÝÒ×°²×°¡¢ÉèÖú͹ÜÀí¡£Ò»°ãµØ½²£¬¿ÉÇ×½üÐÔ(accessibility)ʹµÃSybase¸üÒýÆðÈËÃǵÄ×¢Ò⣬ÎÒÏòûÓа²×°ºÍά»¤·½Ãæ¶¥¼âÊý¾Ý¿â¹ÜÀíÔ±¾ÑéµÄ²¿ÃźÍ×éÖ¯ÍÆ¼öSybase¡£Sybase·þÎñÆ÷µÄCentralȷʵÈÔÈ»ÔÚ¿ÉÓÃÐԵķ½ÃæÐèҪһЩ¹¤×÷¡£Ò»¸öºÃ¼´Ê±Java±àÒëÆ÷ (just-in-time Jave compiler)Ò²ÐíÄܰïÖú¸Ä½øÆäÐÔÄÜ£»µ«ÊÇ SybaseÓ¦¸ÃÀí»áÏñÔÚÊÓͼÖÕÌṩ¹ý¹ýÂËÆ÷ÕâÑùµÄϸ½Ú¡£SybaseµÄ¿ÉÇ×½üÐÔÀ©´óµ½ÁËËüµÄ±à³Ì½Ó¿Ú£¬µ«ÊÇJDBCÇý¶¯³ÌÐòÖÐȱ·¦¶ÔCLOB¡¢BLOB ºÍÊý×éµÄÖ§³ÖʹÈËÃÇ»³ÒÉJava×é¼þµÄ³ÉÊì³Ì¶È£¬Ä¿Ç°È±·¦SQLJÒ²ÊÇÈç´Ë¡£Õâ²»Ó¦¸ÃÓÐʲôµ£ÐÄ£¬³ýÁË×î¸ß¼¶JavaÊý¾Ý¿â³ÌÐòÔ±£¬µ«ÊÇÄÇЩÔÚÍ´¿à±ßÔµÈËÃÇ¿ÉÄܻῼÂÇOracle»ò Db2¸ú¶àµÄJavaÌØÐÔ¡£×ÜÖ®£¬ SybaseµÄ¼ÓÈë¹ãÊÜLinuxÊÀ½çµÄ»¶Ó£¬ËüΪ¿ÉÄܲ»ÄÜÐÒÔ˵عÍÓõ½ÆóÒµÊý¾Ý¿â¹ÜÀíÔ±µÄÈËÌṩÆóÒµÊý¾Ý¿â¹ÜÀíϵͳ¡£
¸½Â¼£º²Î¿¼ÎÄÏ×
Sybase: http://sybase.com/
Sybase SQLAnywhere: http://sybase.com/products/anywhere/index.html
"Oracle on Linux," Uche Ogbuji (LinuxWorld, May 1999): http://www.linuxworld.com/linuxworld/lw-1999-05/lw-05-oracle.html
The public Sybase NNTP server, with the forums sybase.public.sqlanywhere.linux and sybase.public.sqlserver.linux: news://forums.sybase.com
The Blackdown JDK port: http://www.blackdown.org
Linux ODBC drivers and connectivity software: http://www.openlinksw.com/
Web-based query interface: http://www.penguin.cz/~martinmv/websql/
Library for Sybase's wire-level protocol: http://www.freetds.org/
Python ODBC library: http://starship.skyport.net/~lemburg/mxODBC.html
Linux ISQL replacement: http://www.voicenet.com/~gray/sqsh.html
Tcl Interface to Sybase: http://www.nyx.net/~tpoindex/tcl.html#Sybtcl
Qt Sybase SQL Editor: http://www.megsinet.net/~agatka/
±¾Îı»ä¯ÀÀ´Î
| |
|