You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kim Haase (JIRA)" <ji...@apache.org> on 2008/08/20 20:36:44 UTC

[jira] Updated: (DERBY-503) Documentation should recommend using .newInstance() to instantiate JDBC driver

     [ https://issues.apache.org/jira/browse/DERBY-503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kim Haase updated DERBY-503:
----------------------------

    Attachment: DERBY-503.stat
                DERBY-503.zip
                DERBY-503.diff

Attaching DERBY-503.diff, DERBY-503.zip, and DERBY-503.stat.

After further thought, I decided that it makes sense to document the use of newInstance() only in the unusual situation where it is actually required: if you are using the embedded driver and you need to stop Derby and restart it in the course of the application. In that case, you need to call newInstance() when you call Class.forName() to reload the driver. There are three places in the Developer's Guide and one in the Reference Manual where it is useful to mention this.

The rest of the time there is no need for newInstance().

I've still made some corrections: changing "JDK 1.6" and "JDK 1.5" to "JDK 6" and "JDK 5" where needed; changing "put" to "setProperty" when using java.util.Properties (recommended usage); fixing some formatting and index terms in the Reference Manual.

The updates to "java.sql.Driver interface" (rrefjdbc32052.dita) include adding information about the client driver -- it mentioned only the embedded driver up to now. These changes also fix DERBY-2958.

The patch now has the following changes, to 10 files:

Admin Guide:

http://db.apache.org/derby/docs/dev/adminguide/cadminembeddedserver.html (How to start an embedded server from an application): Removed use of newInstance(), fixed JDK 6 reference.

http://db.apache.org/derby/docs/dev/adminguide/radminembeddedserverex.html (Embedded server example): Fixed Properties code and JDK 6 reference, removed newInstance(), changed ClientDriver to EmbeddedDriver.

http://db.apache.org/derby/docs/dev/adminguide/radminappsclientxmp.html (Network client driver examples): Fixed Properties code and JDK 6 reference, fixed a couple typos.

http://db.apache.org/derby/docs/dev/adminguide/cadminappsxawthdriver.html (Using XA with the network client driver): Fixed sample to remove driver instantiation entirely (it is not needed), updated datasource property settings and code spacing.

Dev Guide: 

http://db.apache.org/derby/docs/dev/devguide/cdevdvlp40653.html (Derby JDBC driver): Added explanation of when to use newInstance(). Fixed JDK 5 & 6 references and some typos.

http://db.apache.org/derby/docs/dev/devguide/tdevdvlp20349.html (Shutting down the system): Removed references to garbage collection and added explanation of how to use newInstance() to reload the driver. Also corrected JVM reference and updated error log message.

http://db.apache.org/derby/docs/dev/devguide/tdevdvlp36289.html (Specifying attributes in a properties object): Added explanation of use of Class.forName(). Fixed formatting, Properties code.

Ref Manual:

http://db.apache.org/derby/docs/dev/ref/rrefclob.html (CLOB data type): Added JDK 6 info, removed newInstance(), fixed code formatting.

http://db.apache.org/derby/docs/dev/ref/rrefjdbc32052.html (java.sql.Driver interface): Added information on client driver (DERBY-2958) since the information applies to both client and embedded (please let me know if this is not the case). Added explanation of when to use newInstance(). Removed confusing language and fixed formatting.

http://db.apache.org/derby/docs/dev/ref/rrefjdbc4_0summary.html (JDBC 4.0-only features): Fixed JDK 6 reference.


> Documentation should recommend using .newInstance() to instantiate JDBC driver
> ------------------------------------------------------------------------------
>
>                 Key: DERBY-503
>                 URL: https://issues.apache.org/jira/browse/DERBY-503
>             Project: Derby
>          Issue Type: Improvement
>          Components: Documentation
>    Affects Versions: 10.1.1.0
>            Reporter: Oyvind Bakksjo
>            Assignee: Kim Haase
>            Priority: Minor
>         Attachments: DERBY-503.diff, DERBY-503.stat, DERBY-503.zip
>
>
> Using Class.forName("<driver name>").newInstance() is the recommended way to load and instantiate the JDBC driver, but the documentation does not contain the .newInstance() part.
> Pointers:
> http://db.apache.org/derby/docs/10.1/devguide/cdevdvlp40653.html
> http://db.apache.org/derby/docs/10.1/ref/rrefjdbc32052.html
> The EmbeddedDriver javadoc mentions it:
> "The JDBC specification recommends the Class.ForName method without the .newInstance() method call, but adding the newInstance() guarantees that Derby will be booted on any Java Virtual Machine."

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.