Java Tutorial/Database/Connection
Версия от 17:44, 31 мая 2010;  (обсуждение)
Содержание
- 1 Connection Object
- 2 Connection Object Requirements
- 3 Connection Properties: Pass additional properties using java.util.Properties:
- 4 Connection"s Method to Print Native SQL
- 5 Passing "user" and "password" Parameters as a java.util.Properties Object to Connection object
- 6 Test to See if Your Connection is Alive
- 7 Vendor URL Formats
Connection Object
The Connection object has the following capabilities:
- Creates SQL statements
- Executes SQL queries, inserts, updates, and deletes
- Handles commits and rollbacks
- Provides metadata regarding the database connection
By default, a Connection object is in autocommit mode, which means it automatically commits changes after executing each statement.
Connection Object Requirements
ParameterDescriptiondriverNameJDBC driverdbURLDatabase URL (uniquely identifies a database)dbUsernameDatabase usernamedbPasswordDatabase user password
Connection Properties: Pass additional properties using java.util.Properties:
Properties properties = new java.util.Properties();
properties.put("user", "root");properties.put("password","rootp");
properties.put("useUnicode","true");
properties.put("characterEncoding","utf8");
String databaseURL = "jdbc:mysql://localhost/yourDB";
Connection conn = DriverManager.getConnection(databaseURL, properties);
   
   
Connection"s Method to Print Native SQL
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
  public static void main(String[] args) throws Exception {
    Connection conn = getConnection();
    conn.setAutoCommit(false);
    Statement st = conn.createStatement();
    st.executeUpdate("create table survey (id int,myURL CHAR);");
    String str = conn.nativeSQL("insert into survey(id) values(02)");
    System.out.println(str);
    
    conn.rumit();    
    st.close();
    conn.close();
  }
  private static Connection getConnection() throws Exception {
    Class.forName("org.hsqldb.jdbcDriver");
    String url = "jdbc:hsqldb:mem:data/tutorial";
    return DriverManager.getConnection(url, "sa", "");
  }
}
   
   
Passing "user" and "password" Parameters as a java.util.Properties Object to Connection object
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Main {
  public static Connection getConnection(String dbURL, String user, String password)
      throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");
    Properties props = new Properties();
    props.put("user", user);
    props.put("password", password);
    props.put("autoReconnect", "true");
    return DriverManager.getConnection(dbURL, props);
  }
  public static void main(String[] args) {
    Connection conn = null;
    try {
      conn = getConnection("jdbc:mysql://localhost/empDB", "root", "pass");
    } catch (Exception ex) {
      System.out.println("SQLException: " + ex.getMessage());
    }
  }
}
   
   
Test to See if Your Connection is Alive
- For Oracle database: you may use the Connection object with query of "select 1 from dual"; if the query returns the result, then it is a valid Connection object.
- For MySQL database: you may use the Connection object with query of "select 1"; if the query returns the result, then it is a valid Connection object.
Vendor URL Formats
Vendor                   Driver Name                                      URL Sample
Oracle 8i                oracle.jdbc.driver.OracleDriver                  jdbc:oracle:thin:@localhost:1521:yourDatabase
Oracle 9i                oracle.jdbc.driver.OracleDriver                  jdbc:oracle:thin:@localhost:1521:yourDatabase
MySQL                    org.gjt.mm.mysql.Driver                          jdbc:mysql://localhost/yourDatabase
Microsoft Access         sun.jdbc.odbc.JdbcOdbcDriver                     jdbc:odbc:scorpian
Sybase(jConnect 5.2)     com.sybase.jdbc2.jdbc.SybDriver                  jdbc:sybase:Tds:scorpian:2638
MS SQL Server 2000       com.microsoft.jdbc. sqlserver.SQLServerDriver    jdbc:microsoft:sqlserver://localhost:1433
MS SQL Server 2000       weblogic.jdbc.mssqlserver4.Driver                jdbc:weblogic:mssqlserver4:database@ localhost:port
IBM DB2                  COM.ibm.db2.jdbc.net.DB2Connection               jdbc:db2://localhost:6789/yourDatabase
   
