クラス org.objectweb.cjdbc.driver.Driver

org.objectweb.cjdbc.driver.Driverのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

C-JDBC Driver for client side. This driver is a generic driver that is designed to replace any specific JDBC driver that could be used by a client. The client only has to know the node where the C-JDBC controller is running and the database he wants to access (the RDBMS could be PostgreSQL, Oracle, DB2, Sybase, MySQL or whatever, we only need the name of the database and the C-JDBC controller will be responsible for finding the RDBMs hosting this database).

The C-JDBC driver can be loaded from the client with: Class.forName("org.objectweb.cjdbc.driver.Driver");

The URL expected for the use with C-JDBC is: jdbc:cjdbc://host1:port1,host2:port2/database.

At least one host must be specified. If several hosts are given, one is picked up randomly from the list. If the currently selected controller fails, another one is automatically picked up from the list.

Default port number is 25322 if omitted.

Those 2 examples are equivalent:

 DriverManager.getConnection("jdbc:cjdbc://localhost:/tpcw");
 DriverManager.getConnection("jdbc:cjdbc://localhost:25322/tpcw");
 

Examples using 2 controllers for fault tolerance:

 DriverManager
     .getConnection("jdbc:cjdbc://cluster1.objectweb.org:25322,cluster2.objectweb.org:25322/tpcw");
 DriverManager
     .getConnection("jdbc:cjdbc://localhost:25322,remote.objectweb.org:25322/tpcw");
 DriverManager
     .getConnection("jdbc:cjdbc://smpnode.com:25322,smpnode.com:1098/tpcw");
 

This code has been inspired from the PostgreSQL JDBC driver by Peter T. Mount <peter@retep.org.uk>and the MM MySQL JDBC Drivers from Mark Matthews <mmatthew@worldserver.com>.

作者:
Emmanuel Cecchet

Julie Marguerite

Mathieu Peltier

Marek Prochazka

Nicolas Modrzyk

バージョン:
1.0

Driver.java104 行で定義されています。

Public メソッド

 Driver ()
java.sql.Connection connect (String url, Properties info) throws SQLException
synchronized boolean acceptsURL (String url) throws SQLException
DriverPropertyInfo[] getPropertyInfo (String url, Properties info) throws SQLException
int getMajorVersion ()
int getMinorVersion ()
boolean jdbcCompliant ()

Static Public 変数

final int MAJOR_VERSION
final int MINOR_VERSION

Protected メソッド

String getUrlFromProperties (Hashtable props)

Protected 変数

ArrayList pendingConnectionClosing = new ArrayList()
boolean connectionClosingThreadisAlive = false

Static Protected 変数

final String DATABASE_PROPERTY = "DATABASE"
final String USER_PROPERTY = "user"
final String PASSWORD_PROPERTY = "password"
final String PARAMETER_PROPERTY = "parameter"
final String BOOLEAN_TRUE_PROPERTY = "booleanTrue"
final String BOOLEAN_FALSE_PROPERTY = "booleanFalse"
final String ESCAPE_BACKSLASH_PROPERTY = "escapeBackslash"
final String ESCAPE_SINGLE_QUOTE_PROPERTY = "escapeSingleQuote"
final String ESCAPE_CHARACTER_PROPERTY = "escapeCharacter"

関数

synchronized Hashtable parseURL (String url) throws SQLException

スタティック関数

 [static initializer]

Private メソッド

java.sql.Connection setParametersOnConnection (Properties props, org.objectweb.cjdbc.driver.Connection connection)
Hashtable parseUrlParams (String url) throws SQLException
Hashtable parseUrlParams (String url, char mark, String link, String equal) throws SQLException
ControllerInfo parseController (String controller) throws SQLException

Static Private メソッド

Character validHostname (String hostname)
Character validDatabaseName (String databaseName)

Private 変数

HashMap controllerCache = new HashMap()
HashMap dbNameCache = new HashMap()
String currentControllerURL = null
ArrayList controllerConfig = null
ControllerInfo currentControllerConfig = null
String currentDatabase = null
Random random
int controllerConfigArraySize
int connectionRequestSinceControllerFailure = 0

Static Private 変数

final String HOST_PROPERTY = "HOST"
final String PORT_PROPERTY = "PORT"
final String CONTROLLER_PROPERTY = "CONTROLLER"
final String HOST_PROPERTY_DESCRIPTION = "Hostname of C-JDBC controller"
final String PORT_PROPERTY_DESCRIPTION = "Port number of C-JDBC controller"
final String DATABASE_PROPERTY_DESCRIPTION = "Database name"
final String USER_PROPERTY_DESCRIPTION = "Username to authenticate as"
final String PASSWORD_PROPERTY_DESCRIPTION = "Password to use for authentication"
final String BOOLEAN_TRUE_PROPERTY_DESCRIPTION = "Use this value for the 'true' value when using PreparedStatement.setBoolean method"
final String BOOLEAN_FALSE_PROPERTY_DESCRIPTION = "Use this value for the 'false' value when using PreparedStatement.setBoolean method"
final String ESCAPE_BACKSLASH_PROPERTY_DESCRIPTION = "Set this to true to escape backslashes when performing escape processing of PreparedStatements"
final String ESCAPE_SINGLE_QUOTE_PROPERTY_DESCRIPTION = "Set this to true to escape single quotes (') when performing escape processing of PreparedStatements"
final String ESCAPE_CHARACTER_PROPERTY_DESCRIPTION = "Use this character to prepend and append to the values when performing escape processing of PreparedStatements"
final String CJDBC_URL_HEADER = "jdbc:cjdbc://"
final int CJDBC_URL_HEADER_LENGTH
final int RETRY_CONTROLLER_AFTER_FAILURE = 10


コンストラクタとデストラクタ

org.objectweb.cjdbc.driver.Driver.Driver  ) 
 

Creates a new Driver and register it with DriverManager. Driver.java192 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.random.

00193 { 00194 // Required for Class.forName().newInstance() 00195 random = new Random(System.currentTimeMillis()); 00196 }


メソッド

org.objectweb.cjdbc.driver.Driver.[static initializer]  )  [static, package]
 

synchronized boolean org.objectweb.cjdbc.driver.Driver.acceptsURL String  url  )  throws SQLException
 

Tests if the URL is understood by the driver. Calls the parseURL() method.

引数:
url the JDBC URL.
戻り値:
true if the URL is correct, otherwise an exception with extensive error message is thrown.
例外:
SQLException if the URL is incorrect an explicit error message is given.
Driver.java443 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.parseURL().

00444 { 00445 try 00446 { 00447 parseURL(url); 00448 return true; 00449 } 00450 catch (SQLException e) 00451 { 00452 return false; 00453 } 00454 }

java.sql.Connection org.objectweb.cjdbc.driver.Driver.connect String  url,
Properties  info
throws SQLException
 

Asks the C-JDBC controller if the requested database can be accessed with the provided user name and password. If the C-JDBC controller can't access the requested database, an SQLException is thrown, else a "fake" Connection is returned to the user so that he or she can create Statements.

引数:
url the URL of the C-JDBC controller to which to connect.
info a list of arbitrary string tag/value pairs as connection arguments (usually at least a "user" and "password").
戻り値:
a Connection object that represents a connection to the database through the C-JDBC Controller.
例外:
SQLException if an error occurs.

We cannot raise a SQLException as the driver manager tries to connect to all registered drivers. So if the CJDBC_URL_HEADER is not found we should probably pass... and return null Driver.java212 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER, org.objectweb.cjdbc.driver.Driver.connectionRequestSinceControllerFailure, org.objectweb.cjdbc.driver.Driver.controllerCache, org.objectweb.cjdbc.driver.Driver.controllerConfig, org.objectweb.cjdbc.driver.Driver.controllerConfigArraySize, org.objectweb.cjdbc.driver.Driver.currentControllerConfig, org.objectweb.cjdbc.driver.Driver.currentControllerURL, org.objectweb.cjdbc.driver.Driver.currentDatabase, org.objectweb.cjdbc.driver.Driver.dbNameCache, org.objectweb.cjdbc.driver.Driver.ControllerInfo.getHostname(), org.objectweb.cjdbc.driver.Connection.getPassword(), org.objectweb.cjdbc.driver.Driver.ControllerInfo.getPort(), org.objectweb.cjdbc.driver.Connection.getURL(), org.objectweb.cjdbc.driver.Connection.getUserName(), org.objectweb.cjdbc.driver.Connection.isClosed, org.objectweb.cjdbc.driver.Driver.parseURL(), org.objectweb.cjdbc.driver.Driver.PASSWORD_PROPERTY, org.objectweb.cjdbc.driver.Driver.pendingConnectionClosing, org.objectweb.cjdbc.driver.Driver.random, org.objectweb.cjdbc.driver.Driver.RETRY_CONTROLLER_AFTER_FAILURE, org.objectweb.cjdbc.driver.Driver.setParametersOnConnection(), と org.objectweb.cjdbc.driver.Driver.USER_PROPERTY.

参照元 org.objectweb.cjdbc.driver.DataSource.getConnection(), と org.objectweb.cjdbc.driver.Connection.reconnect().

00214 { 00215 if (url == null) 00216 throw new SQLException("Invalid null URL in connect"); 00217 00223 if (!url.toLowerCase().startsWith(CJDBC_URL_HEADER)) 00224 return null; 00225 00226 String user = null; 00227 if (info != null) 00228 user = info.getProperty(USER_PROPERTY); 00229 else 00230 { 00231 info = new Properties(); 00232 } 00233 00234 if (user == null || user.equals("")) 00235 { 00236 if ((user = info.getProperty(USER_PROPERTY)) == null) 00237 throw new SQLException("Invalid null user name in connect"); 00238 } 00239 00240 String password = info.getProperty(PASSWORD_PROPERTY); 00241 if (password == null) 00242 { 00243 throw new SQLException("Invalid null password in connect"); 00244 } 00245 00246 // Parse url to get parameters 00247 Hashtable props = this.parseUrlParams(url); 00248 if (props != null) 00249 info.putAll(props); 00250 00251 // ssl enabled ? 00252 SSLConfiguration ssl = null; 00253 if ("true".equals(System.getProperty("cjdbc.ssl.enabled"))) 00254 { 00255 ssl = SSLConfiguration.getDefaultConfig(); 00256 } 00257 00258 // Check if there is a connection that is about to be closed that could 00259 // be reused. We take the bet that if a connection has been released by 00260 // a client, in the general case, it will reuse the same connection. 00261 // As we need to keep the work in the synchronized block as minimal as 00262 // possible, we have to extract the string comparison (url,name,password) 00263 // from the sync block. This way, we cannot just read/compare/take the 00264 // connection without synchronizing the whole thing. A solution is to 00265 // systematically extract the first available connection in the sync block, 00266 // and do the checkings outside the block. If we fail, we re-sync to put 00267 // the connection back but in practice it is almost always a success and 00268 // we don't really care to pay this extra cost once in a while. 00269 try 00270 { 00271 Connection c; 00272 synchronized (pendingConnectionClosing) 00273 { 00274 // Take the last one to prevent shifting all elements 00275 c = (Connection) pendingConnectionClosing 00276 .remove(pendingConnectionClosing.size() - 1); 00277 } 00278 if (url.equals(c.getURL()) && user.equals(c.getUserName()) 00279 && password.equals(c.getPassword())) 00280 { // Great! Take this one. 00281 c.isClosed = false; 00282 return setParametersOnConnection(info, c); 00283 } 00284 else 00285 // Put this connection back, it is not good for us 00286 synchronized (pendingConnectionClosing) 00287 { 00288 pendingConnectionClosing.add(c); 00289 } 00290 } 00291 catch (IndexOutOfBoundsException ignore) 00292 { 00293 // No connection available 00294 } 00295 00296 int retry = 2; 00297 int picked; 00298 while (retry > 0) 00299 { 00300 // Check if the last url used was the same, if yes we re-use the 00301 // same controller and connection point. 00302 synchronized (this) 00303 { 00304 if (!url.equals(currentControllerURL) 00305 || (connectionRequestSinceControllerFailure >= RETRY_CONTROLLER_AFTER_FAILURE) 00306 || ((controllerConfig != null) && (controllerConfig.size() == 0))) 00307 { // Too bad, all caches missed 00308 ControllerInfo[] controllerConfigArray = (ControllerInfo[]) controllerCache 00309 .get(url); 00310 if (controllerConfigArray == null) // Not in the cache 00311 { 00312 parseURL(url); 00313 controllerConfigArray = (ControllerInfo[]) controllerCache.get(url); 00314 } 00315 controllerConfig = new ArrayList(); 00316 controllerConfigArraySize = controllerConfigArray.length; 00317 for (int i = 0; i < controllerConfigArraySize; i++) 00318 controllerConfig.add(controllerConfigArray[i]); 00319 00320 currentControllerURL = url; 00321 currentDatabase = (String) dbNameCache.get(url); 00322 if (currentDatabase == null) 00323 throw new SQLException("Database name cache failure"); 00324 00325 // Give all controllers a chance 00326 retry = controllerConfig.size(); 00327 connectionRequestSinceControllerFailure = 0; 00328 } 00329 } 00330 00331 int size = controllerConfig.size(); 00332 if (size < controllerConfigArraySize) 00333 connectionRequestSinceControllerFailure++; 00334 00335 // Pick one controller randomly among the controllers that have not been 00336 // tried yet. 00337 picked = random.nextInt(size); 00338 currentControllerConfig = (ControllerInfo) controllerConfig.get(picked); 00339 00340 boolean sentVdbName = false; 00341 boolean sentUserInfo = false; 00342 try 00343 { 00344 // Connect to the controller 00345 Socket socket = null; 00346 if (ssl == null) 00347 { 00348 // no ssl - we use ordinary socket 00349 socket = new Socket(currentControllerConfig.getHostname(), 00350 currentControllerConfig.getPort()); 00351 } 00352 else 00353 { 00354 SocketFactory sslFact = SocketFactoryFactory.createFactory(ssl); 00355 socket = sslFact.createSocket(currentControllerConfig.getHostname(), 00356 currentControllerConfig.getPort()); 00357 } 00358 00359 // Disable Nagle algorithm else small messages are not sent 00360 // (at least under Linux) even if we flush the output stream. 00361 socket.setTcpNoDelay(true); 00362 00363 CJDBCOutputStream out = new CJDBCOutputStream(socket); 00364 // Send protocol version and database name 00365 out.writeInt(Commands.ProtocolVersion); 00366 out.writeUTF(currentDatabase); 00367 out.flush(); 00368 sentVdbName = true; 00369 00370 // Send user information 00371 out.writeUTF(user); 00372 out.writeUTF(password); 00373 out.flush(); 00374 sentUserInfo = true; 00375 00376 CJDBCInputStream in; 00377 boolean needSkeleton; 00378 AbstractBlobFilter filter = null; 00379 try 00380 { 00381 // Create input stream only here else it will block 00382 in = new CJDBCInputStream(socket); 00383 00384 Object response = in.readObject(); 00385 if (response instanceof Boolean) 00386 { 00387 needSkeleton = ((Boolean) response).booleanValue(); 00388 String sfilter = in.readUTF(); 00389 filter = AbstractBlobFilter.getBlobFilterInstance(sfilter); 00390 } 00391 else if (response instanceof SQLException) 00392 throw (SQLException) response; 00393 else 00394 throw new SQLException("Error during connection (received " 00395 + response + ")"); 00396 } 00397 catch (IOException e) 00398 { 00399 currentControllerURL = null; 00400 throw new SQLException("Authentication failed"); 00401 } 00402 return setParametersOnConnection(info, new Connection(this, socket, in, 00403 out, url, user, password, needSkeleton, filter)); 00404 } 00405 catch (Exception re) 00406 { 00407 controllerConfig.remove(picked); 00408 retry--; 00409 if (retry == 0) 00410 { 00411 if (!sentVdbName) 00412 throw new SQLException("Unable to connect to controller on " 00413 + currentControllerConfig.getHostname() + ":" 00414 + currentControllerConfig.getPort() + " (" + re + ")"); 00415 else if (!sentUserInfo) 00416 throw new SQLException( 00417 "Unable to connect to the virtual database (virtual database name is probably not correct)"); 00418 else 00419 throw new SQLException( 00420 "Unable to connect to the virtual database (" + re + ")"); 00421 } 00422 else 00423 { // Reset if no more controllers in the list 00424 if (controllerConfig.isEmpty()) 00425 currentControllerURL = null; 00426 } 00427 } 00428 } 00429 throw new SQLException( 00430 "Unable to connect to the virtual database - Unexpected error."); 00431 }

int org.objectweb.cjdbc.driver.Driver.getMajorVersion  ) 
 

Gets the river's major version number

戻り値:
the driver's major version number
Driver.java814 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.MAJOR_VERSION.

参照元 org.objectweb.cjdbc.driver.DataSource.getDescription().

00815 { 00816 return MAJOR_VERSION; 00817 }

int org.objectweb.cjdbc.driver.Driver.getMinorVersion  ) 
 

Gets the driver's minor version number

戻り値:
the driver's minor version number
Driver.java824 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.MINOR_VERSION.

参照元 org.objectweb.cjdbc.driver.DataSource.getDescription().

00825 { 00826 return MINOR_VERSION; 00827 }

DriverPropertyInfo [] org.objectweb.cjdbc.driver.Driver.getPropertyInfo String  url,
Properties  info
throws SQLException
 

This method is intended to allow a generic GUI tool to discover what properties it should prompt a human for in order to get enough information to connect to a database.

The only properties supported by C-JDBC are: #PORT_PROPERTY, #CONTROLLER_PROPERTY, #DATABASE_PROPERTY, #USER_PROPERTY and #PASSWORD_PROPERTY. url the URL of the database to connect to info a proposed list of tag/value pairs that will be sent on connect open. an array of DriverPropertyInfo objects describing possible properties. This array may be an empty array if no properties are required. SQLException if a database-access error occurs. java.sql.Driver#getPropertyInfo Driver.java749 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.BOOLEAN_FALSE_PROPERTY, org.objectweb.cjdbc.driver.Driver.BOOLEAN_FALSE_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.BOOLEAN_TRUE_PROPERTY, org.objectweb.cjdbc.driver.Driver.BOOLEAN_TRUE_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY, org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.ESCAPE_BACKSLASH_PROPERTY, org.objectweb.cjdbc.driver.Driver.ESCAPE_BACKSLASH_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.ESCAPE_CHARACTER_PROPERTY, org.objectweb.cjdbc.driver.Driver.ESCAPE_CHARACTER_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.ESCAPE_SINGLE_QUOTE_PROPERTY, org.objectweb.cjdbc.driver.Driver.ESCAPE_SINGLE_QUOTE_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.HOST_PROPERTY, org.objectweb.cjdbc.driver.Driver.HOST_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.PASSWORD_PROPERTY, org.objectweb.cjdbc.driver.Driver.PASSWORD_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.PORT_PROPERTY, org.objectweb.cjdbc.driver.Driver.PORT_PROPERTY_DESCRIPTION, org.objectweb.cjdbc.driver.Driver.USER_PROPERTY, と org.objectweb.cjdbc.driver.Driver.USER_PROPERTY_DESCRIPTION.

00751 { 00752 DriverPropertyInfo hostProp = new DriverPropertyInfo(HOST_PROPERTY, info 00753 .getProperty(HOST_PROPERTY)); 00754 hostProp.required = true; 00755 hostProp.description = HOST_PROPERTY_DESCRIPTION; 00756 00757 DriverPropertyInfo portProp = new DriverPropertyInfo(PORT_PROPERTY, info 00758 .getProperty(PORT_PROPERTY, Integer 00759 .toString(ControllerConstants.DEFAULT_PORT))); 00760 portProp.required = false; 00761 portProp.description = PORT_PROPERTY_DESCRIPTION; 00762 00763 DriverPropertyInfo databaseProp = new DriverPropertyInfo(DATABASE_PROPERTY, 00764 info.getProperty(DATABASE_PROPERTY)); 00765 databaseProp.required = true; 00766 databaseProp.description = DATABASE_PROPERTY_DESCRIPTION; 00767 00768 DriverPropertyInfo userProp = new DriverPropertyInfo(USER_PROPERTY, info 00769 .getProperty(USER_PROPERTY)); 00770 userProp.required = true; 00771 userProp.description = USER_PROPERTY_DESCRIPTION; 00772 00773 DriverPropertyInfo passwordProp = new DriverPropertyInfo(PASSWORD_PROPERTY, 00774 info.getProperty(PASSWORD_PROPERTY)); 00775 passwordProp.required = true; 00776 passwordProp.description = PASSWORD_PROPERTY_DESCRIPTION; 00777 00778 DriverPropertyInfo escapeCharProp = new DriverPropertyInfo( 00779 ESCAPE_CHARACTER_PROPERTY, info.getProperty(ESCAPE_CHARACTER_PROPERTY)); 00780 escapeCharProp.required = false; 00781 escapeCharProp.description = ESCAPE_CHARACTER_PROPERTY_DESCRIPTION; 00782 00783 DriverPropertyInfo escapeBackProp = new DriverPropertyInfo( 00784 ESCAPE_BACKSLASH_PROPERTY, info.getProperty(ESCAPE_BACKSLASH_PROPERTY)); 00785 escapeBackProp.required = false; 00786 escapeBackProp.description = ESCAPE_BACKSLASH_PROPERTY_DESCRIPTION; 00787 00788 DriverPropertyInfo escapeSingleProp = new DriverPropertyInfo( 00789 ESCAPE_SINGLE_QUOTE_PROPERTY, info 00790 .getProperty(ESCAPE_SINGLE_QUOTE_PROPERTY)); 00791 escapeSingleProp.required = false; 00792 escapeSingleProp.description = ESCAPE_SINGLE_QUOTE_PROPERTY_DESCRIPTION; 00793 00794 DriverPropertyInfo booleanFalseProp = new DriverPropertyInfo( 00795 BOOLEAN_FALSE_PROPERTY, info.getProperty(BOOLEAN_FALSE_PROPERTY)); 00796 booleanFalseProp.required = false; 00797 booleanFalseProp.description = BOOLEAN_FALSE_PROPERTY_DESCRIPTION; 00798 00799 DriverPropertyInfo booleanTrueProp = new DriverPropertyInfo( 00800 BOOLEAN_TRUE_PROPERTY, info.getProperty(BOOLEAN_TRUE_PROPERTY)); 00801 booleanTrueProp.required = false; 00802 booleanTrueProp.description = BOOLEAN_TRUE_PROPERTY_DESCRIPTION; 00803 00804 return new DriverPropertyInfo[]{hostProp, portProp, databaseProp, userProp, 00805 passwordProp, escapeCharProp, escapeBackProp, escapeSingleProp, 00806 booleanFalseProp, booleanTrueProp}; 00807 }

String org.objectweb.cjdbc.driver.Driver.getUrlFromProperties Hashtable  props  )  [protected]
 

Feed in a set of properties and get the url as a String

引数:
props as defined statically at the top of the class
戻り値:
String describing the url
Driver.java600 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER, org.objectweb.cjdbc.driver.Driver.CONTROLLER_PROPERTY, org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY, と org.objectweb.cjdbc.driver.Driver.PARAMETER_PROPERTY.

参照元 org.objectweb.cjdbc.driver.Connection.setCatalog().

00601 { 00602 StringBuffer sb = new StringBuffer(); 00603 sb.append(CJDBC_URL_HEADER); 00604 ControllerInfo[] controllerList = (ControllerInfo[]) props 00605 .get(CONTROLLER_PROPERTY); 00606 for (int i = 0; i < controllerList.length; i++) 00607 { 00608 if (i == 0) 00609 sb.append(controllerList[i].toString()); 00610 else 00611 sb.append("," + controllerList[i].toString()); 00612 } 00613 sb.append("/" + props.get(DATABASE_PROPERTY)); 00614 Hashtable params = (Hashtable) props.get(PARAMETER_PROPERTY); 00615 if (params != null) 00616 { 00617 Enumeration paramsKeys = params.keys(); 00618 String element = null; 00619 while (paramsKeys.hasMoreElements()) 00620 { 00621 if (element == null) 00622 sb.append("?"); 00623 else 00624 sb.append("&"); 00625 element = (String) paramsKeys.nextElement(); 00626 sb.append(element + "=" + params.get(paramsKeys)); 00627 } 00628 } 00629 return sb.toString(); 00630 }

boolean org.objectweb.cjdbc.driver.Driver.jdbcCompliant  ) 
 

Reports whether the driver is a genuine JDBC compliant driver. A driver may only report true here if it passes the JDBC compliance tests, otherwise it is required to return false. JDBC compliance requires full support for the JDBC API and full support for SQL 92 Entry Level. We cannot ensure that the underlying JDBC drivers will be JDBC compliant, so it is safer to return false.

戻り値:
always false
Driver.java839 行で定義されています。
00840 { 00841 return false; 00842 }

ControllerInfo org.objectweb.cjdbc.driver.Driver.parseController String  controller  )  throws SQLException [private]
 

Checks the validity of the hostname, port number and controller name given in the URL and build the full URL used to lookup a controller.

引数:
controller information regarding a controller.
戻り値:
a ControllerInfo object
例外:
SQLException if an error occurs.
Driver.java684 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.ControllerInfo.getHostname(), org.objectweb.cjdbc.driver.Driver.ControllerInfo.setHostname(), org.objectweb.cjdbc.driver.Driver.ControllerInfo.setPort(), と org.objectweb.cjdbc.driver.Driver.validHostname().

参照元 org.objectweb.cjdbc.driver.Driver.parseURL().

00685 { 00686 ControllerInfo controllerInfo = new ControllerInfo(); 00687 00688 // Check controller syntax 00689 StringTokenizer controllerURL = new StringTokenizer(controller, ":", true); 00690 00691 // Get hostname 00692 controllerInfo.setHostname(controllerURL.nextToken()); 00693 Character c = validHostname(controllerInfo.getHostname()); 00694 if (c != null) 00695 throw new SQLException( 00696 "Unable to validate hostname (unacceptable character '" + c 00697 + "' in hostname '" + controllerInfo.getHostname() 00698 + "' from the URL part '" + controller + "')"); 00699 00700 if (!controllerURL.hasMoreTokens()) 00701 controllerInfo.setPort(ControllerConstants.DEFAULT_PORT); 00702 else 00703 { 00704 controllerURL.nextToken(); // should be ':' 00705 if (!controllerURL.hasMoreTokens()) 00706 controllerInfo.setPort(ControllerConstants.DEFAULT_PORT); 00707 else 00708 { // Get the port number 00709 String port = controllerURL.nextToken(); 00710 if (controllerURL.hasMoreTokens()) 00711 throw new SQLException( 00712 "Invalid controller definition with more than one semicolon in URL part '" 00713 + controller + "'"); 00714 00715 // Check the port number validity 00716 try 00717 { 00718 controllerInfo.setPort(Integer.parseInt(port)); 00719 } 00720 catch (NumberFormatException ne) 00721 { 00722 throw new SQLException( 00723 "Unable to validate port number (unacceptable port number '" 00724 + port + "' in this URL part '" + controller + "')"); 00725 } 00726 } 00727 } 00728 return controllerInfo; 00729 }

synchronized Hashtable org.objectweb.cjdbc.driver.Driver.parseURL String  url  )  throws SQLException [package]
 

Checks for URL correctness and adds controllers list and database name to the cache.

引数:
url the URL of the C-JDBC controller to which to connect.
例外:
SQLException if an error occurs.
Driver.java463 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER, org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER_LENGTH, org.objectweb.cjdbc.driver.Driver.CONTROLLER_PROPERTY, org.objectweb.cjdbc.driver.Driver.controllerCache, org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY, org.objectweb.cjdbc.driver.Driver.dbNameCache, org.objectweb.cjdbc.driver.Driver.PARAMETER_PROPERTY, org.objectweb.cjdbc.driver.Driver.parseController(), org.objectweb.cjdbc.driver.Driver.parseUrlParams(), と org.objectweb.cjdbc.driver.Driver.validDatabaseName().

参照元 org.objectweb.cjdbc.driver.Driver.acceptsURL(), org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Connection.setCatalog().

00464 { 00465 // Find the hostname and check for URL correctness 00466 if (url == null) 00467 { 00468 throw new IllegalArgumentException( 00469 "Illegal null URL in parseURL(String) method"); 00470 } 00471 00472 if (!url.toLowerCase().startsWith(CJDBC_URL_HEADER)) 00473 throw new SQLException("Malformed header from URL '" + url 00474 + "' (expected '" + CJDBC_URL_HEADER + "')"); 00475 else 00476 { 00477 // Initialize return 00478 Hashtable result = new Hashtable(); 00479 00480 // Get the controllers list 00481 int nextSlash = url.indexOf('/', CJDBC_URL_HEADER_LENGTH); 00482 if (nextSlash == -1) 00483 // Missing '/' between hostname and database name. 00484 throw new SQLException("Malformed URL '" + url + "' (expected '" 00485 + CJDBC_URL_HEADER + "<hostname>/<database>')"); 00486 00487 // Found end of database name 00488 int questionMark = url.indexOf('?', nextSlash); 00489 questionMark = (questionMark == -1) 00490 ? url.indexOf(';', nextSlash) 00491 : questionMark; 00492 00493 String controllerURLs = url.substring(CJDBC_URL_HEADER_LENGTH, nextSlash); 00494 // Check the validity of each controller in the list 00495 StringTokenizer controllers = new StringTokenizer(controllerURLs, ",", 00496 true); 00497 int tokenNumber = controllers.countTokens(); 00498 ArrayList list = new ArrayList(); 00499 00500 int i = 0; 00501 String s; 00502 boolean lastTokenWasComma = false; 00503 while (controllers.hasMoreTokens()) 00504 { 00505 s = controllers.nextToken().trim(); 00506 if (s.equals(",")) 00507 { 00508 if (lastTokenWasComma || (i == 0) || (i == tokenNumber - 1)) 00509 // ',' cannot be the first or the last token 00510 // another ',' cannot follow a ',' 00511 throw new SQLException("Syntax error in controller list '" 00512 + controllerURLs + "' from URL '" + url + "'"); 00513 else 00514 { 00515 lastTokenWasComma = true; 00516 continue; 00517 } 00518 } 00519 lastTokenWasComma = false; 00520 list.add(parseController(s)); 00521 i++; 00522 } 00523 00524 ControllerInfo[] controllerList = new ControllerInfo[i]; 00525 for (int j = 0; j < i; j++) 00526 { 00527 controllerList[j] = (ControllerInfo) (list.get(j)); 00528 } 00529 // Add controller list to the result 00530 result.put(CONTROLLER_PROPERTY, controllerList); 00531 00532 // Check database name validity 00533 String databaseName = (questionMark == -1) ? url.substring(nextSlash + 1, 00534 url.length()) : url.substring(nextSlash + 1, questionMark); 00535 Character c = validDatabaseName(databaseName); 00536 if (c != null) 00537 throw new SQLException( 00538 "Unable to validate database name (unacceptable character '" + c 00539 + "' in database '" + databaseName + "' from URL '" + url 00540 + "')"); 00541 00542 // Add database name to result 00543 result.put(DATABASE_PROPERTY, databaseName); 00544 00545 // Finally, add the controllers list and database name to the caches 00546 controllerCache.put(url, controllerList); 00547 dbNameCache.put(url, databaseName); 00548 00549 // Get the parameters from the url 00550 Hashtable params = parseUrlParams(url); 00551 if (params != null) 00552 result.put(PARAMETER_PROPERTY, params); 00553 return result; 00554 } 00555 }

Hashtable org.objectweb.cjdbc.driver.Driver.parseUrlParams String  url,
char  mark,
String  link,
String  equal
throws SQLException [private]
 

Driver.java643 行で定義されています。

00645 { 00646 int questionMark = url.indexOf(mark, url.lastIndexOf('/')); 00647 if (questionMark == -1) 00648 return null; 00649 else 00650 { 00651 Hashtable props = new Hashtable(); 00652 String parameters = url.substring(questionMark + 1); 00653 StringTokenizer st1 = new StringTokenizer(parameters, link); 00654 while (st1.hasMoreTokens()) 00655 { 00656 String param = st1.nextToken(); 00657 StringTokenizer st2 = new StringTokenizer(param, equal); 00658 if (st2.hasMoreTokens()) 00659 { 00660 try 00661 { 00662 String paramName = st2.nextToken(); 00663 String paramValue = (st2.hasMoreTokens()) ? st2.nextToken() : ""; 00664 props.put(paramName, paramValue); 00665 } 00666 catch (Exception e) 00667 { 00668 throw new SQLException("Invalid parameter in URL"); 00669 } 00670 } 00671 } 00672 return props; 00673 } 00674 }

Hashtable org.objectweb.cjdbc.driver.Driver.parseUrlParams String  url  )  throws SQLException [private]
 

Driver.java632 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.parseURL().

00633 { 00634 Hashtable props; 00635 props = parseUrlParams(url, '?', "&", "="); 00636 if (props == null) 00637 { 00638 props = parseUrlParams(url, ';', ";", "="); 00639 } 00640 return props; 00641 }

java.sql.Connection org.objectweb.cjdbc.driver.Driver.setParametersOnConnection Properties  props,
org.objectweb.cjdbc.driver.Connection  connection
[private]
 

Set the different parameters on the connection. Possible values are: BOOLEAN_TRUE_PROPERTY
BOOLEAN_FALSE_PROPERTY
ESCAPE_BACKSLASH_PROPERTY
ESCAPE_SINGLE_QUOTE_PROPERTY

引数:
props the properties used to connect to the controller. These properties should be collected from both the url and the Properties object passed in to the connect method
connection the connection to set the parameters on. Previous parameters will be overriden
戻り値:
the same connection with the parameters set
Driver.java571 行で定義されています。

参照先 org.objectweb.cjdbc.driver.Driver.BOOLEAN_FALSE_PROPERTY, org.objectweb.cjdbc.driver.Driver.BOOLEAN_TRUE_PROPERTY, org.objectweb.cjdbc.driver.Driver.ESCAPE_BACKSLASH_PROPERTY, org.objectweb.cjdbc.driver.Driver.ESCAPE_CHARACTER_PROPERTY, と org.objectweb.cjdbc.driver.Driver.ESCAPE_SINGLE_QUOTE_PROPERTY.

参照元 org.objectweb.cjdbc.driver.Driver.connect().

00573 { 00574 String booleanTrue = props.getProperty(BOOLEAN_TRUE_PROPERTY); 00575 if (booleanTrue != null) 00576 connection.setPreparedStatementBooleanTrue(booleanTrue); 00577 String booleanFalse = props.getProperty(BOOLEAN_FALSE_PROPERTY); 00578 if (booleanFalse != null) 00579 connection.setPreparedStatementBooleanFalse(booleanFalse); 00580 String escapeBaskslash = props.getProperty(ESCAPE_BACKSLASH_PROPERTY); 00581 if (escapeBaskslash != null) 00582 connection 00583 .setEscapeBackslash(new Boolean(escapeBaskslash).booleanValue()); 00584 String escapeQuote = props.getProperty(ESCAPE_SINGLE_QUOTE_PROPERTY); 00585 if (escapeQuote != null) 00586 connection.setEscapeSingleQuote(new Boolean(escapeQuote).booleanValue()); 00587 00588 String escapeChar = props.getProperty(ESCAPE_CHARACTER_PROPERTY); 00589 if (escapeChar != null) 00590 connection.setEscapeChar(escapeChar); 00591 return connection; 00592 }

Character org.objectweb.cjdbc.driver.Driver.validDatabaseName String  databaseName  )  [static, private]
 

Checks that the given name contains acceptable characters for a database name ([0-9][A-Z][a-z]).

引数:
databaseName name to check (caller must check that it is not null).
戻り値:
null if the name is acceptable, else the character that causes the fault.
Driver.java895 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.parseURL().

00896 { 00897 char[] name = databaseName.toCharArray(); 00898 int size = databaseName.length(); 00899 char c; 00900 00901 for (int i = 0; i < size; i++) 00902 { 00903 c = name[i]; 00904 if ((c < '0') || (c > 'z') || ((c > '9') && (c < 'A')) 00905 || ((c > 'Z') && (c < 'a'))) 00906 return new Character(c); 00907 } 00908 return null; 00909 }

Character org.objectweb.cjdbc.driver.Driver.validHostname String  hostname  )  [static, private]
 

Checks that the given name contains acceptable characters for a hostname name ([0-9][A-Z][a-z][.]).

引数:
hostname name to check (caller must check that it is not null).
戻り値:
null if the hostname is acceptable, else the character that causes the fault.
Driver.java853 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.parseController().

00854 { 00855 char[] name = hostname.toCharArray(); 00856 int size = hostname.length(); 00857 char c; 00858 //boolean lastCharWasPoint = false; // used to avoid '..' in hostname 00859 char lastChar = ' '; 00860 00861 for (int i = 0; i < size; i++) 00862 { 00863 c = name[i]; 00864 00865 if (c == '.' || c == '-') 00866 { 00867 if (lastChar == '.' || lastChar == '-' || (i == size - 1) || (i == 0)) 00868 { 00869 // . or - cannot be the first or the last char of hostname 00870 // hostname cannot contain '..' or '.-' or '-.' or '--' 00871 return new Character(c); 00872 } 00873 } 00874 else 00875 { 00876 if (((c < '0') || (c > 'z') || ((c > '9') && (c < 'A')) || ((c > 'Z') && (c < 'a')))) 00877 { 00878 return new Character(c); 00879 } 00880 } 00881 lastChar = c; 00882 } 00883 return null; 00884 }


変数

final String org.objectweb.cjdbc.driver.Driver.BOOLEAN_FALSE_PROPERTY = "booleanFalse" [static, protected]
 

Driver.java123 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), と org.objectweb.cjdbc.driver.Driver.setParametersOnConnection().

final String org.objectweb.cjdbc.driver.Driver.BOOLEAN_FALSE_PROPERTY_DESCRIPTION = "Use this value for the 'false' value when using PreparedStatement.setBoolean method" [static, private]
 

Driver.java135 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.BOOLEAN_TRUE_PROPERTY = "booleanTrue" [static, protected]
 

Driver.java122 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), と org.objectweb.cjdbc.driver.Driver.setParametersOnConnection().

final String org.objectweb.cjdbc.driver.Driver.BOOLEAN_TRUE_PROPERTY_DESCRIPTION = "Use this value for the 'true' value when using PreparedStatement.setBoolean method" [static, private]
 

Driver.java134 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER = "jdbc:cjdbc://" [static, private]
 

C-JDBC URL header. Driver.java141 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), org.objectweb.cjdbc.driver.Driver.getUrlFromProperties(), と org.objectweb.cjdbc.driver.Driver.parseURL().

final int org.objectweb.cjdbc.driver.Driver.CJDBC_URL_HEADER_LENGTH [static, private]
 

初期値:

CJDBC_URL_HEADER .length()
C-JDBC URL header length. Driver.java144 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.parseURL().

boolean org.objectweb.cjdbc.driver.Driver.connectionClosingThreadisAlive = false [protected]
 

Driver.java158 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Connection.close(), org.objectweb.cjdbc.driver.ConnectionClosingThread.ConnectionClosingThread(), と org.objectweb.cjdbc.driver.ConnectionClosingThread.run().

int org.objectweb.cjdbc.driver.Driver.connectionRequestSinceControllerFailure = 0 [private]
 

Driver.java167 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

final String org.objectweb.cjdbc.driver.Driver.CONTROLLER_PROPERTY = "CONTROLLER" [static, private]
 

Driver.java117 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getUrlFromProperties(), と org.objectweb.cjdbc.driver.Driver.parseURL().

HashMap org.objectweb.cjdbc.driver.Driver.controllerCache = new HashMap() [private]
 

Cache of parsed URL (ControllerInfo objects defined at the end of this class) used to connect to the controller. Driver.java151 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Driver.parseURL().

ArrayList org.objectweb.cjdbc.driver.Driver.controllerConfig = null [private]
 

Driver.java162 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

int org.objectweb.cjdbc.driver.Driver.controllerConfigArraySize [private]
 

Driver.java166 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

ControllerInfo org.objectweb.cjdbc.driver.Driver.currentControllerConfig = null [private]
 

Driver.java163 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

String org.objectweb.cjdbc.driver.Driver.currentControllerURL = null [private]
 

Controller. Driver.java161 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

String org.objectweb.cjdbc.driver.Driver.currentDatabase = null [private]
 

Driver.java164 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

final String org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY = "DATABASE" [static, protected]
 

Driver.java118 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), org.objectweb.cjdbc.driver.Driver.getUrlFromProperties(), と org.objectweb.cjdbc.driver.Driver.parseURL().

final String org.objectweb.cjdbc.driver.Driver.DATABASE_PROPERTY_DESCRIPTION = "Database name" [static, private]
 

Driver.java131 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

HashMap org.objectweb.cjdbc.driver.Driver.dbNameCache = new HashMap() [private]
 

Cache of database names and matching URLs. Driver.java154 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Driver.parseURL().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_BACKSLASH_PROPERTY = "escapeBackslash" [static, protected]
 

Driver.java124 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), と org.objectweb.cjdbc.driver.Driver.setParametersOnConnection().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_BACKSLASH_PROPERTY_DESCRIPTION = "Set this to true to escape backslashes when performing escape processing of PreparedStatements" [static, private]
 

Driver.java136 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_CHARACTER_PROPERTY = "escapeCharacter" [static, protected]
 

Driver.java126 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), と org.objectweb.cjdbc.driver.Driver.setParametersOnConnection().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_CHARACTER_PROPERTY_DESCRIPTION = "Use this character to prepend and append to the values when performing escape processing of PreparedStatements" [static, private]
 

Driver.java138 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_SINGLE_QUOTE_PROPERTY = "escapeSingleQuote" [static, protected]
 

Driver.java125 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo(), と org.objectweb.cjdbc.driver.Driver.setParametersOnConnection().

final String org.objectweb.cjdbc.driver.Driver.ESCAPE_SINGLE_QUOTE_PROPERTY_DESCRIPTION = "Set this to true to escape single quotes (') when performing escape processing of PreparedStatements" [static, private]
 

Driver.java137 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.HOST_PROPERTY = "HOST" [static, private]
 

C-JDBC driver property name. Driver.java115 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.HOST_PROPERTY_DESCRIPTION = "Hostname of C-JDBC controller" [static, private]
 

C-JDBC driver property description. Driver.java129 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final int org.objectweb.cjdbc.driver.Driver.MAJOR_VERSION [static]
 

初期値:

Constants .getMajorVersion()
Driver major version. Driver.java107 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getMajorVersion().

final int org.objectweb.cjdbc.driver.Driver.MINOR_VERSION [static]
 

初期値:

Constants .getMinorVersion()
Driver minor version. Driver.java111 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getMinorVersion().

final String org.objectweb.cjdbc.driver.Driver.PARAMETER_PROPERTY = "parameter" [static, protected]
 

Driver.java121 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getUrlFromProperties(), と org.objectweb.cjdbc.driver.Driver.parseURL().

final String org.objectweb.cjdbc.driver.Driver.PASSWORD_PROPERTY = "password" [static, protected]
 

Driver.java120 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.PASSWORD_PROPERTY_DESCRIPTION = "Password to use for authentication" [static, private]
 

Driver.java133 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

ArrayList org.objectweb.cjdbc.driver.Driver.pendingConnectionClosing = new ArrayList() [protected]
 

List of connections that are ready to be closed. Driver.java157 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Connection.close(), org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.ConnectionClosingThread.ConnectionClosingThread().

final String org.objectweb.cjdbc.driver.Driver.PORT_PROPERTY = "PORT" [static, private]
 

Driver.java116 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.PORT_PROPERTY_DESCRIPTION = "Port number of C-JDBC controller" [static, private]
 

Driver.java130 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

Random org.objectweb.cjdbc.driver.Driver.random [private]
 

Driver.java165 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Driver.Driver().

final int org.objectweb.cjdbc.driver.Driver.RETRY_CONTROLLER_AFTER_FAILURE = 10 [static, private]
 

Driver.java170 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect().

final String org.objectweb.cjdbc.driver.Driver.USER_PROPERTY = "user" [static, protected]
 

Driver.java119 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.connect(), と org.objectweb.cjdbc.driver.Driver.getPropertyInfo().

final String org.objectweb.cjdbc.driver.Driver.USER_PROPERTY_DESCRIPTION = "Username to authenticate as" [static, private]
 

Driver.java132 行で定義されています。

参照元 org.objectweb.cjdbc.driver.Driver.getPropertyInfo().


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.1に対してWed Aug 18 09:20:32 2004に生成されました。 doxygen 1.3.8