Archive for the ‘JDBC’ Category
-
Hello, JDBC Type4(Oxygene) World!
Posted on 4月 18th, 2013 by cx20
JDBC Type4(Oxygene)
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type4 は DBMS のクライアントライブラリを使用しない Pure Java の DBMS ドライバである。
以下は Oxygene による JDBC ライブラリの使用例となっている。ソースコード(Oxygene + JDBC Type4 + SQL Server)
namespace hello; interface uses java.sql.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn := DriverManager.getConnection("jdbc:sqlserver://;server=localhost", "sa", "P@ssW0rd"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type4 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
コンパイル&実行方法(Oxygene + JDBC Type4 + SQL Server)
C:¥> oxygene Hello.pas -mode:Java C:¥> java -Xbootclasspath/a:sqljdbc4.jar -jar hello.jar
ソースコード(Oxygene + JDBC Type4 + Oracle)
namespace hello; interface uses java.sql.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("oracle.jdbc.driver.OracleDriver"); conn := DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type4 World!' AS Message FROM DUAL"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
コンパイル&実行方法(Oxygene + JDBC Type4 + Oracle)
C:¥> oxygene Hello.pas -mode:Java C:¥> java -Xbootclasspath/a:ojdbc6.jar -jar hello.jar
ソースコード(Oxygene + JDBC Type4 + MySQL)
namespace hello; interface uses java.sql.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("com.mysql.jdbc.Driver"); conn := DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "P@ssW0rd"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type4 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
コンパイル&実行方法(Oxygene + JDBC Type4 + MySQL)
C:¥> oxygene Hello.pas -mode:Java C:¥> java -Xbootclasspath/a:mysql-connector-java-5.1.22-bin.jar -jar hello.jar
実行結果
Hello, JDBC Type4 World!
-
Hello, JDBC Type2(Oxygene) World!
Posted on 4月 17th, 2013 by cx20
JDBC Type2
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type2 は JDBC と DBMS クライアントの API をマップさせたブリッジドライバである。
例えば、Oracle であればクライアントライブラリとして OCI が使用される。
以下は Oxygene による JDBC ライブラリの使用例となっている。ソースコード(Oxygene + JDBC Type2 + Oracle)
namespace hello; interface uses java.sql.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("oracle.jdbc.driver.OracleDriver"); conn := DriverManager.getConnection("jdbc:oracle:oci:@orcl", "scott", "tiger"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type2 World!' AS Message FROM DUAL"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
コンパイル&実行方法
C:¥> oxygene Hello.pas -mode:Java C:¥> java -Xbootclasspath/a:ojdbc6.jar -jar hello.jar
実行結果
Hello, JDBC Type2 World!
-
Hello, JDBC Type1(Oxygene) World!
Posted on 4月 16th, 2013 by cx20
JDBC Type1
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type1 は JDBC と ODBC の API をマップさせたブリッジドライバである。
以下は Oxygene による JDBC ライブラリの使用例となっている。ソースコード(Oxygene + JDBC Type1 + ODBC + Jet データベース)
namespace hello; interface uses java.sql.*, sun.jdbc.odbc.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn := DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=.\\hello.mdb", "", ""); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type1 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
ソースコード(Oxygene + JDBC Type1 + ODBC + ACE データベース)
namespace hello; interface uses java.sql.*, sun.jdbc.odbc.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn := DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\\hello.accdb", "", ""); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type1 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
ソースコード(Oxygene + JDBC Type1 + ODBC + SQL Server)
namespace hello; interface uses java.sql.*, sun.jdbc.odbc.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn := DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};SERVER=(local)", "sa", "P@ssW0rd"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type1 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
ソースコード(Oxygene + JDBC Type1 + ODBC + Oracle)
namespace hello; interface uses java.sql.*, sun.jdbc.odbc.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn := DriverManager.getConnection("jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL", "scott", "tiger"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type1 World!' AS Message FROM DUAL"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
ソースコード(Oxygene + JDBC Type1 + ODBC + MySQL)
namespace hello; interface uses java.sql.*, sun.jdbc.odbc.*; type Hello = class public class method Main(args: array of String); end; implementation class method Hello.Main(args: array of String); var conn: Connection; stmt: Statement; rs: ResultSet; begin java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn := DriverManager.getConnection("jdbc:odbc:Driver={MySQL ODBC 5.1 Driver};Server=localhost", "root", "P@ssW0rd"); stmt := conn.createStatement(); rs := stmt.executeQuery("SELECT 'Hello, JDBC Type1 World!' AS Message"); while rs.next() do begin System.out.println( rs.getString(1) ); end; rs.close(); stmt.Close(); conn.Close(); end; end.
実行方法
C:¥> oxygene Hello.pas -mode:Java C:¥> java -jar hello.jar
実行結果
Hello, JDBC Type1 World!
-
Hello, AWT(Scala) World!
Posted on 11月 13th, 2012 by cx20
AWT(Scala)
AWT(Abstract Window Toolkit) は Java で GUI を扱うためのライブラリである。
J2SE 1.2 以降は AWT を拡張した Swing が使われることが多くなっている。
以下は Scala による AWT の使用例となっている。ソースコード
import java.awt._ import java.awt.event._ object Hello { def main(args: Array[String]) { var frame = new HelloFrame( "Hello, World" ) frame.setVisible(true) } } class HelloFrame( title: String ) extends Frame { setTitle( title ) addWindowListener(new HelloWindowAdapter()) setSize(640, 480) setLayout(new FlowLayout(FlowLayout.LEFT)) var label = new Label("Hello, AWT World!") add(label) } class HelloWindowAdapter extends WindowAdapter { override def windowClosing( e: WindowEvent ) { System.exit(0) } }
コンパイル&実行方法
C:¥> scalac Hello.scala C:¥> scala Hello
実行結果
+------------------------------------------+ |Hello, World! [_][~][X]| +------------------------------------------+ |Hello, AWT World! | | | | | | | | | | | | | | | | | | | +------------------------------------------+
-
Hello, JDBC Type4(Jasmin) World!
Posted on 10月 30th, 2012 by cx20
JDBC Type4
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type4 は DBMS のクライアントライブラリを使用しない Pure Java の DBMS ドライバである。
以下は Jasmin による JDBC ライブラリの使用例となっている。ソースコード(Jasmin + JDBC Type4 + SQL Server)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 23:33:16 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 3 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 6 0: ldc "com.microsoft.sqlserver.jdbc.SQLServerDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:sqlserver://;serverName=localhost" 8: ldc "sa" 10: ldc "P@ssW0rd" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type4 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
実行方法(Jasmin + JDBC Type4 + SQL Server)
C:¥> java -jar jasmin.jar Hello.j C:¥> java -cp sqljdbc4.jar;. Hello
ソースコード(Jasmin + JDBC Type4 + Oracle)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 23:37:45 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 3 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 6 0: ldc "oracle.jdbc.driver.OracleDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:oracle:thin:@localhost:1521:orcl" 8: ldc "scott" 10: ldc "tiger" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type4 World!' AS Message FROM DUAL" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
実行方法(Jasmin + JDBC Type4 + Oracle)
C:¥> java -jar jasmin.jar Hello.j C:¥> java -cp ojdbc6.jar;. Hello
ソースコード(Jasmin + JDBC Type4 + MySQL)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 23:37:45 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 3 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 6 0: ldc "com.mysql.jdbc.Driver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:mysql://localhost:3306" 8: ldc "root" 10: ldc "P@ssW0rd" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type4 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
実行方法(Jasmin + JDBC Type4 + MySQL)
C:¥> java -jar jasmin.jar Hello.j C:¥> java -cp mysql-connector-java-5.1.22-bin.jar;. Hello
実行結果
Hello, JDBC Type4 World!
-
Hello, JDBC Type2(Jasmin) World!
Posted on 10月 29th, 2012 by cx20
JDBC Type2
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type2 は JDBC と DBMS クライアントの API をマップさせたブリッジドライバである。
例えば、Oracle であればクライアントライブラリとして OCI が使用される。
以下は Jasmin による JDBC ライブラリの使用例となっている。ソースコード(Jasmin + JDBC Type2 + Oracle)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 23:37:45 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 3 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 6 0: ldc "oracle.jdbc.driver.OracleDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:oracle:oci:@orcl" 8: ldc "scott" 10: ldc "tiger" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type4 World!' AS Message FROM DUAL" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
実行方法
C:¥> java -jar jasmin.jar Hello.j C:¥> java -cp ojdbc6.jar;. Hello
実行結果
Hello, JDBC Type2 World!
-
Hello, JDBC Type1(Jasmin) World!
Posted on 10月 28th, 2012 by cx20
JDBC Type1
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type1 は JDBC と ODBC の API をマップさせたブリッジドライバである。
以下は Jasmin による JDBC ライブラリの使用例となっている。ソースコード(Jasmin + JDBC Type1 + ODBC + Jet データベース)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 02:25:36 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 4 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 7 0: ldc "sun.jdbc.odbc.JdbcOdbcDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 9 6: ldc "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb" 8: ldc "" 10: ldc "" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 10 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 11 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type1 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 12 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 13 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 15 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 16 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 17 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 18 75: return .throws java/lang/Exception .end method
ソースコード(Jasmin + JDBC Type1 + ODBC + ACE データベース)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 02:25:49 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 4 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 7 0: ldc "sun.jdbc.odbc.JdbcOdbcDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 11 6: ldc "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\hello.accdb" 8: ldc "" 10: ldc "" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 13 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 14 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type1 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 15 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 16 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 18 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 19 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 20 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 21 75: return .throws java/lang/Exception .end method
ソースコード(Jasmin + JDBC Type1 + ODBC + SQL Server)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 02:08:35 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 4 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 8 0: ldc "sun.jdbc.odbc.JdbcOdbcDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 11 6: ldc "jdbc:odbc:Driver={SQL Server};SERVER=(local)" 8: ldc "sa" 10: ldc "P@ssW0rd" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 13 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 14 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type1 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 15 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 16 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 18 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 19 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 20 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 21 75: return .throws java/lang/Exception .end method
ソースコード(Jasmin + JDBC Type1 + ODBC + Oracle)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 02:41:22 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 4 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 7 0: ldc "sun.jdbc.odbc.JdbcOdbcDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL" 8: ldc "scott" 10: ldc "tiger" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type1 World!' AS Message FROM DUAL" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
ソースコード(Jasmin + JDBC Type1 + ODBC + MySQL)
; Produced by NeoJasminVisitor (tinapoc) ; http://tinapoc.sourceforge.net ; The original JasminVisitor is part of the BCEL ; http://jakarta.apache.org/bcel/ ; Tue Oct 16 02:26:06 JST 2012 .bytecode 50.0 .source Hello.java .class Hello .super java/lang/Object .method <init>()V .limit stack 1 .limit locals 1 .var 0 is this LHello; from Label0 to Label1 Label0: .line 4 0: aload_0 1: invokespecial java/lang/Object/<init>()V Label1: 4: return .end method .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 4 .var 0 is arg0 [Ljava/lang/String; from Label2 to Label3 Label2: .line 7 0: ldc "sun.jdbc.odbc.JdbcOdbcDriver" 2: invokestatic java/lang/Class/forName(Ljava/lang/String;)Ljava/lang/Class; 5: pop .line 8 6: ldc "jdbc:odbc:Driver={MySQL ODBC 5.1 Driver};Server=localhost" 8: ldc "root" 10: ldc "P@ssW0rd" 12: invokestatic java/sql/DriverManager/getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; 15: astore_1 .line 9 16: aload_1 17: invokeinterface java/sql/Connection/createStatement()Ljava/sql/Statement; 1 22: astore_2 .line 10 23: aload_2 24: ldc "SELECT 'Hello, JDBC Type1 World!' AS Message" 26: invokeinterface java/sql/Statement/executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet; 2 31: astore_3 Label1: .line 11 32: aload_3 33: invokeinterface java/sql/ResultSet/next()Z 1 38: ifeq Label0 .line 12 41: getstatic java.lang.System.out Ljava/io/PrintStream; 44: aload_3 45: iconst_1 46: invokeinterface java/sql/ResultSet/getString(I)Ljava/lang/String; 2 51: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V 54: goto Label1 Label0: .line 14 57: aload_3 58: invokeinterface java/sql/ResultSet/close()V 1 .line 15 63: aload_2 64: invokeinterface java/sql/Statement/close()V 1 .line 16 69: aload_1 70: invokeinterface java/sql/Connection/close()V 1 Label3: .line 17 75: return .throws java/lang/Exception .end method
実行方法
C:¥> java -jar jasmin.jar Hello.j C:¥> java -jar Hello
実行結果
Hello, JDBC Type1 World!
-
Hello, JDBC Type4(Fantom) World!
Posted on 10月 27th, 2012 by cx20
JDBC Type4
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type4 は DBMS のクライアントライブラリを使用しない Pure Java の DBMS ドライバである。
以下は Fantom による JDBC ライブラリの使用例となっている。ディレクトリ構成
%FANTOM_HOME% /etc /sql … DB ライブラリ設定ファイル配置場所 /lib /java /ext … ライブラリ配置場所 1. %FANTOM_HOME%etcsql に DB ライブラリ設定ファイルを配置 config.props 2. %FANTOM_HOME%libjavaetc にライブラリ配置 sqljdbc4.jar ojdbc6.jar mysql-connector-java-5.1.22-bin.jar
ソースコード(Fantom + JDBC Type4 + SQL Server)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:sqlserver://;serverName=localhost", "sa", "P@ssW0rd") stmt := db.sql("SELECT 'Hello, JDBC Type4 World!' AS Message").query stmt.each |Obj row| { echo(row->Message) } } }
設定ファイル(Fantom + JDBC Type4 + SQL Server)
java.drivers=com.microsoft.sqlserver.jdbc.SQLServerDriver
ソースコード(Fantom + JDBC Type4 + Oracle)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger") stmt := db.sql("SELECT 'Hello, JDBC Type4 World!' AS Message FROM DUAL").query stmt.each |Obj row| { echo(row->Message) } } }
設定ファイル(Fantom + JDBC Type4 + Oracle)
java.drivers=oracle.jdbc.driver.OracleDriver
ソースコード(Fantom + JDBC Type4 + MySQL)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:mysql://localhost:3306", "root", "P@ssW0rd") stmt := db.sql("SELECT 'Hello, JDBC Type4 World!' AS Message").query stmt.each |Obj row| { echo(row->Message) } } }
設定ファイル(Fantom + JDBC Type4 + MySQL)
java.drivers=com.mysql.jdbc.Driver
実行方法
C:¥> fan hello.fan
実行結果
Hello, JDBC Type4 World!
-
Hello, JDBC Type2(Fantom) World!
Posted on 10月 26th, 2012 by cx20
JDBC Type2
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type2 は JDBC と DBMS クライアントの API をマップさせたブリッジドライバである。
例えば、Oracle であればクライアントライブラリとして OCI が使用される。
以下は Fantom による JDBC ライブラリの使用例となっている。ディレクトリ構成
%FANTOM_HOME% /etc /sql … DB ライブラリ設定ファイル配置場所 /lib /java /ext … ライブラリ配置場所 1. %FANTOM_HOME%etcsql に DB ライブラリ設定ファイルを配置 config.props 2. %FANTOM_HOME%libjavaetc にライブラリ配置 ojdbc6.jar
ソースコード(Fantom + JDBC Type2 + Oracle)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:oracle:oci:@orcl", "scott", "tiger") stmt := db.sql("SELECT 'Hello, JDBC Type2 World!' AS Message FROM DUAL").query stmt.each |Obj row| { echo(row->Message) } } }
設定ファイル(Fantom + JDBC Type2 + Oracle)
java.drivers=oracle.jdbc.driver.OracleDriver
実行方法
C:¥> fan hello.fan
実行結果
Hello, JDBC Type2 World!
-
Hello, JDBC Type1(Fantom) World!
Posted on 10月 25th, 2012 by cx20
JDBC Type1
JDBC(Java Database Connectivity)は、Java 用のデータベース接続 API である。実装方法によりType1~4の4つのタイプが存在する。
Type1 は JDBC と ODBC の API をマップさせたブリッジドライバである。
以下は Fantom による JDBC ライブラリの使用例となっている。ソースコード(Fantom + JDBC Type1 + ODBC + Jet データベース)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=.\hello.mdb", "", "") stmt := db.sql("SELECT 'Hello, JDBC Type1 World!' AS Message").query stmt.each |Obj row| { echo(row->Message) } } }
ソースコード(Fantom + JDBC Type1 + ODBC + ACE データベース)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=.\hello.mdb", "", "") stmt := db.sql("SELECT 'Hello, JDBC Type1 World!' AS Message").query stmt.each |Obj row| { echo(row->Message) } } }
ソースコード(Fantom + JDBC Type1 + ODBC + SQL Server)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:odbc:Driver={SQL Server};SERVER=(local)", "sa", "P@ssW0rd") stmt := db.sql("SELECT 'Hello, JDBC Type1 World!' AS Message").query stmt.each |Obj row| { echo(row->Message) } } }
ソースコード(Fantom + JDBC Type1 + ODBC + Oracle)
using sql class Hello { static Void main() { db := SqlConn.open("jdbc:odbc:Driver={Oracle in OraDb11g_home1};DBQ=ORCL", "scott", "tiger") stmt := db.sql("SELECT 'Hello, JDBC Type1 World!' AS Message FROM DUAL").query stmt.each |Obj row| { echo(row->Message) } } }
実行方法
C:¥> fan Hello.fan
実行結果
Hello, JDBC Type1 World!