PowerDesigner9 做出的 DbManager.java (轉)

amyz發表於2007-08-17
PowerDesigner9 做出的 DbManager.java (轉)[@more@]

 

//////////////////////////////////////////////
// This file was generated by PowerDesigner //
//////////////////////////////////////////////

// Package declaration
package ;

// Imports

import .*;
import java.io.*;
import java..*;
import java.util.*;

// The database manager is in charge of loading database , connecting to a database,
// perfong queries and handling errors using functions.

public class DbManager {
  // Load JDBC driver

  public boolean loadDriver() {
  try {
  // Force the JDBC driver to be loaded
  error = false;
  errorStr = null;
  String status = "Loading the JDBC driver: " + DEFAULT_JDBCDRIVER + "...";
  showStatus(status);
  Class.forName(DEFAULT_JDBCDRIVER);
  return true;
  }
  catch (Exception e) {
  error = true;
  errorStr = "Unable to load the JDBC driver " + DEFAULT_JDBCDRIVER + ".  " +
  e.toString();
  e.printStackTrace(System.out);
  return false;
  }
  }

  // Connect to the database

  public boolean connect() {
  try {
  // Do we need to reconnect?
  if (innected() && !needReconnect) {
  return true;
  }
  // Disconnect the old connection
  if (isConnected()) {
  if (!disconnect()) {
  return false;
  }
  }
  // Generate the URL for the database
  String urlStr = url;
  if (database.length() > 0) {
  if (url.equalsIgnoreCase("jdbc:odbc")) {
  url += ":";
  }
  else {
  url += "/";
  }
  url += database;
  }
  // Set connection properties
  Properties props = new Properties();
  props.put("user", user);
  props.put("pass", password);
  // Connect to the database at that URL.
  error = false;
  errorStr = null;
  showStatus("Connecting to: " + url + "...");
  DriverManager.setLoginTimeout(DEFAULT_TIMEOUT);
  connection = DriverManager.getConnection(url, props);
  // Create default statement
  statement = connection.createStatement();
  needReconnect = false;
  return true;
  }
  catch (SQLException sqle) {
  error = true;
  errorStr = sqle.toString() + ".  Restart connection.";
  connection = null;
  return false;
  }
  catch (Exception e) {
  connection = null;
  catchEx(e);
  return false;
  }
  }

  // Disconnect the database

  public boolean disconnect() {
  try {
  error = false;
  errorStr = null;
  closeStatement();
  if (connection != null) {
  connection.close();
  connection = null;
  }
  needReconnect = true;
  return true;
  }
  catch (Exception e) {
  catchEx(e);
  return false;
  }
  }

  // Execute a query

  public boolean executeQuery(String query) {
  if (statement != null) {
  try {
  error = false;
  errorStr = null;
  showStatus("Executing query: " + query);
  statement.setQueryTimeout(DEFAULT_TIMEOUT);
  boolean restype = statement.execute(query);
  return restype;
  }
  catch (SQLException sqle) {
  catchSQLEx(sqle);
  return false;
  }
  catch (Exception e) {
  catchEx(e);
  return false;
  }
  }
  return false;
  }

  // Close the statement

  public boolean closeStatement() {
  try {
  error = false;
  errorStr = null;
  if (statement != null) {
  statement.close();
  statement = null;
  }
  return true;
  }
  catch (Exception e) {
  catchEx(e);
  return false;
  }
  }

  // Catch exception

  public void catchEx(Exception e) {
  e.printStackTrace();
  error = true;
  errorStr = "Unexpected Exception: " + e.toString();
  }

  // Catch SQL exception

  public void catchSQLEx(SQLException sqle) {
  error = true;
  errorStr = sqle.toString() + " Cancelling...";
  try {
  statement.cancel();
  }
  catch (SQLException sqle2) {
  errorStr = sqle2.toString() + " after " + sqle.toString();
  }
  }

  // Test if the database connection is established

  public boolean isConnected() {
  if (connection != null) {
  return true;
  }
  else {
  return false;
  }
  }

  // Get URL

  public String getUrl() {
  return url;
  }

  // Set URL

  public void setUrl(String newUrl) {
  if (!newUrl.equalsIgnoreCase(this.url)) {
  needReconnect = true;
  }
  this.url = newUrl;
  }

  // Get user name

  public String getUser() {
  return user;
  }

  // Set user name

  public void setUser(String newUser) {
  if (!newUser.equalsIgnoreCase(this.user)) {
  needReconnect = true;
  }
  this.user = newUser;
  }

  // Get password

  public String getPassword() {
  return password;
  }

  // Set password

  public void setPassword(String newPassword) {
  if (!newPassword.equalsIgnoreCase(this.password)) {
  needReconnect = true;
  }
  this.password = newPassword;
  }

  // Get database

  public String getDatabase() {
  return database;
  }

  // Set database

  public void setDatabase(String newDatabase) {
  if (!newDatabase.equalsIgnoreCase(this.database)) {
  needReconnect = true;
  }
  this.database = newDatabase;
  }

  // Get statement

  public Statement getStatement() {
  return statement;
  }

  // Set statement

  public Connection getConnection() {
  return connection;
  }

  // Get error text

  public String getErrorStr() {
  return errorStr;
  }

  // Test if there is an error

  public boolean hasError() {
  return error;
  }

  // Display message in the standard output

  private void showStatus(String s) {
  System.out.println(s);
  }

  // Default JDBC driver name.
  // For jConnect: "com.sybase.jdbc2.jdbc.SybDriver"
  // For JDBC/ODBC: "sun.jdbc.odbc.JdbcOdbcDriver"
  // For : "oracle.jdbc.driver.OracleDriver"

  static final String DEFAULT_JDBCDRIVER = "com.sybase.jdbc2.jdbc.SybDriver";

  // Time out delay

  static final int DEFAULT_TIMEOUT = 10;

  // Connection

  private Connection connection = null;

  // Statement object

  private Statement statement = null;

  // Error code

  private boolean error = false;

  // Error text

  private String errorStr = "";

  // JDBC database URL

  private String url = "";

  // User name

  private String user = "";

  // Password

  private String password = "";

  // Database name

  private String database = "";

  // Need reconnect indicator

  private boolean needReconnect = true;

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963373/,如需轉載,請註明出處,否則將追究法律責任。

相關文章