2 JDBC Connection Overview Connection object represents the connection to the database. The connection process includes the resulting SQL statement and the result returned on the connection. An application can have one or more connections with a single database, or can be connected to many databases. 2.1.1 Opening the connection to the database to establish a connection to the database is to call the DriverManager.getConnection method. This method accepts a string containing a URL. The DriverManager class (ie, the so-called JDBC Management) will try to find a driver that can be connected to the database represented by the URL. The DRIVERMANAGER has a list of registered DRIVER classes. When the method getConnection is called, it will check each driver in the list until a driver that can be connected to the database specified in the URL. Driver's method Connect uses this URL to establish a practical connection. The user can bypass the JDBC management directly call the Driver method. This will be useful in the following special circumstances: When the two drivers can be connected to the database, the user needs to expressly select the specific drive. But in general, let DRIVERMANAGER class handle this kind of job will be simpler. The following code shows how to open a connection to a database located at the URL "JDBC: ODBC: Wombat". The user identifier used is "OBOY", the password is "12java": String Url = "JDBC: ODBC: Wombat"; connection con = DriverManager.getConnection (URL, "OBOY", "12java"); 2.1.2 General usage URLs are often confused because the URL is often confused, and we will first simply explain the general URL, and then discuss the JDBC URL. URL (Uniform Resource Locator) provides information required to locate resources on the Internet. You can imagine it as an address. The first part of the URL specifies the protocol used to access the information, which is always following the colon. Commonly used protocols have "FTP" (representing "File Transfer Protocol") and "HTTP" (represents "Hypertext Transfer Protocol"). If the protocol is "file", it means that the resource is on a local file system, not on the Internet (the following example is used to represent the part we described; it is not a component component). FTP: //javasoft.com/docs/jdk-1_apidocs.ziphtp://java.sun.com/products/jdk/currentreleasefile:/Home/HaroldW/DOCS/Books/Tutorial/summary.htmlurl's remainder (colon) The following) gives information about the location of the data resource. If the protocol is file, the remaining part of the URL is the path to the file. For FTP and HTTP protocols, the remaining parts of the URL identify the host and optionally give a more detailed address path. For example, the following is the URL of the JavaSoft home page. This URL only identifies the host: http://java.sun.com You can go to many other web pages from this homepage, one of which is the JDBC home page. The URL of the JDBC home page is more specific. It looks like: http://java.sun.com/products/jdbc2.1.3 JDBC URL JDBC URL provides a method of identifying the database, allowing the corresponding driver to identify the The database is connected to it. In fact, the driver programmer will determine what JDBC URL identifies a particular driver.
Users don't have to care about how to form a JDBC URL; they only need to use the URL provided with the drivers used. JDBC's role is to provide some conventions, and the driver programmer should follow these conventions when constructing their JDBC URL. Since the JDBC URL should be used with a variety of drivers, these agreements should be very flexible. First, they should allow different drivers to use different scenarios to name the database. For example, the ODBC sub protocol allows (but not required) URL contains attribute values. Second, the JDBC URL should allow the driver programmer to be encapsulated in it. This allows you to open a database connection with the applet to a given database dialog, without requiring users to do any system management. Third, the JDBC URL should allow some degree of indirectness. That is, the JDBC URL can point to the logical host or database name, and this logical host or database name will dynamically convert to the actual name by the network naming system. This allows the system administrator to declare a particular host as part of the JDBC name. Network naming services (such as DNS, NIS, and DCE) have a variety of, but no restrictions on which naming service used. The standard syntax of the JDBC URL is as follows. It consists of three parts, each part is separated by colon: JDBC:
The full syntax of the ODBC sub protocol is: JDBC: ODBC: [;
The methods provided below can quickly decide which connection method to use to create different types of SQL statements: CreateStateMent method for: Simple SQL statement (without parameters) pre previoustement method for: SQL statement with one or more in parameters A simple SQL statement prepareCall method that is often performed is used for: Calling the stored procedure 2.1.7 Transaction transaction consists of one or more of such statements: These statements have been executed, completed and submitted or restored. When the method commit or rollback is called, the current transaction ends, and another transaction begins. By default, the new connection will be in automatic submission mode. That is, after the expression is performed, the COMMIT method will be called automatically. In this case, since each statement is submitted separately, a transaction consists only by one statement. If automatic submission mode is disabled, the transaction will wait until the CommT or Rollback method is explicitly invoked, so it will include all the statements that have been executed since the last call commit or rollback method. For the second case, all statements in the transaction will be submitted or restored as a group. Methods Commit makes any changes made by the SQL statement to the database, which will also release all locks held by the transaction. The method ROLLBACK will discard those changes. Sometimes the user does not want this to take effect before another change. This can be achieved by disabling automatic submission and combining two updates in a transaction. If the two updates are successful, call the commit method so that the two update results become permanent; if one or two updates fails, call the ROLLBACK method to restore the value to be updated. value. Most JDBC drivers support transactions. In fact, drivers that meet JDBC must support transactions. DatabaseMetadata gives the information given by DBMS. 2.1.8 Transaction isolation Level If DBMS supports transaction processing, it must have some way to manage two transactions simultaneously conflicts with a database. Users can specify a transaction isolation level to indicate how DBMS should spend more energy to solve potential conflicts. For example, when the transaction changes a certain value and the second transaction is to read this value before the change is submitted or restored, the first transaction is restored, the change value read by the second transaction Will be invalid, then this conflict can be allowed? The JDBC user can use the following code to indicate that the DBMS allows the value ("DIRTY read") to be read before the value is submitted, where CON is current connection: con.settransactioniSolation; transaction isolation level is higher, to avoid conflict The more energy is also. The Connection interface defines five levels, where the lowest level specifies that the transaction is not supported, and the highest level specifies that any other transaction does not change the data that the transaction is being read when the transaction is operated in a database. Typically, the higher the isolation level, the slower the speed of the application execution (due to the increase in resources for lock, and the concurrent operation between the user is reduced). When deciding which isolation level, developers must trade between performance requirements and data consistency requirements. Of course, the actual level can be supported depends on the function of the DBMS involved. When creating a Connection object, its transaction isolation level depends on the driver, but is usually the default value of the database involved. Users can change the transaction isolation level by calling the SetisolationLevel method. The new level will take effect within the remainder of the connection process.