Class.forName?

Tom McGinn tom.mcginn at oracle.com
Sat Feb 1 07:07:06 PST 2014


Thanks Jim -

That's what I needed.  Here's the working code:

var driverClass = Java.type("org.apache.derby.jdbc.ClientDriver");
var driver = new driverClass();
var conn = 
driver.connect("jdbc:derby://localhost:1527/sample;user=app;password=app", 
null);
var stmt = conn.createStatement();
var rs = stmt.executeQuery("SELECT NAME FROM Customer");
while (rs.next()) {
     print(rs.getString(1));
}

However, this code does not work:

var driverManager = Java.type("java.sql.DriverManager");
var conn = 
driverManager.getConnection("jdbc:derby://localhost:1527/sample;user=app;password=app");

A SQLException is thrown:  No suitable driver found for 
jdbc:derby://localhost:1527/sample;user=app;password=app

I may have missed this, but I guess that static initialization blocks 
are not executed?  DriverManager would have executed
this during initialization:

     static {
         loadInitialDrivers();
         println("JDBC DriverManager initialized");
     }

Thanks again,

Tom


On 1/31/2014 8:20 PM, Jim Laskey (Oracle) wrote:
> Since I don't have the jar handy, I'm just guessing, but why wouldn't you just;
>
> jjs> var driverClass = Java.type("org.apache.derby.jdbc.ClientDriver");
>
> -- Jim
>
> On Jan 31, 2014, at 7:43 PM, Tom McGinn <tom.mcginn at oracle.com> wrote:
>
>> Hello -
>>
>> I am trying to create a JS file that illustrates using Java classes mixed with JS.
>>
>> I am trying to connect to the sample JavaDB instance, but am not able to load the driver class.
>>
>> jjs -cp /home/tmcginn/jdk1.8.0/db/lib/derbyclient.jar
>> jjs> var driver = "org.apache.derby.jdbc.ClientDriver";
>> jjs> Java.type("java.lang.Class").forName(driver);
>> java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
>>
>> I think I am missing something obvious....
>>
>> I am running this on Oracle Linux 6 u3 on an OVM.
>>
>> Thanks,
>>
>> Tom
>>
>> -- 
>>
>>
>> Tom McGinn | Java Curriculum Developer
>> OracleServer Technologies Curriculum Development
>> Phone: +1.781.442.0621
>> Mail: tom.mcginn at oracle.com
>> Blog: Java Training Beat <https://blogs.oracle.com/javatraining/>
>>

-- 


Tom McGinn | Java Curriculum Developer
OracleServer Technologies Curriculum Development
Phone: +1.781.442.0621
Mail: tom.mcginn at oracle.com
Blog: Java Training Beat <https://blogs.oracle.com/javatraining/>



More information about the nashorn-dev mailing list