程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 控制器組件JDBC數據庫操作的JAVABEAN

控制器組件JDBC數據庫操作的JAVABEAN

編輯:關於JAVA

在控制器組件中,我們最經常做的是與數據庫進行交互。這裡,我們寫一個javabean,用於封裝與數據庫的操作,主要是連接數據庫,插入修改刪除等更新操作和查詢操作。代碼很簡單如下(需完善):

Java代碼

package com.newland.nlie.highway.pub_com;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.sql.DataSource;

public class DatabaseBean extends java.lang.Object {
  private Connection conn = null;

  private Statement stmt = null;

  /**
   * 構造函數 
   */
  public DatabaseBean() {
  }

  /**
   * 通過JNDI建立連接 
   */
  private void build_conn() throws Exception {
    try {
      Context ctx = init_bean.get_init_ctx();
      // forJBoss 
      Object obj = ctx.lookup("java:OracleDS");
      // forWebSphere
      // Object obj = ctx.lookup("Pub_DataSource");
      DataSource ds = (DataSource) obj;
      this.conn = ds.getConnection();
      this.stmt = conn.createStatement();
    } catch (Exception ex) {
    }
  }

  /**
   * 獲取PreparedStatement對象
   */
  public PreparedStatement get_statment(String sql)
      throws java.lang.Exception {
    try {
      if (conn == null)
        build_conn();
      PreparedStatement preparedStatement = conn.prepareStatement(sql);
      return preparedStatement;
    } catch (Exception ex) {
      throw ex;
    }
  }

  /**
   * 執行更新操作
   */
  public void execute_update(String sql) throws Exception {
    try {
      if (conn == null)
        build_conn();
      stmt.executeUpdate(sql);
    } catch (Exception ex) {
    }
  }

  /**
   * 執行查詢操作
   */
  public ResultSet execute_query(String sql) throws Exception {
    ResultSet rs = null;
    try {
      if (this.conn == null)
        build_conn();
      rs = stmt.executeQuery(sql);
    } catch (Exception ex) {
    }
    return rs;
  }

  /**
   * 設置是否自動提交
   */
  public void set_auto_commnit(boolean ac) {
    try {
      if (this.conn == null)
        build_conn();
      conn.setAutoCommit(ac);
    } catch (Exception ex) {
    }
  }

  /**
   * 回滾
   */
  public boolean rollback() {
    try {
      if ((conn != null) && (!conn.getAutoCommit())) {
        conn.rollback();
      }
      return true;
    } catch (SQLException ex) {
      return false;
    }
  }

  /**
   * 關閉數據庫 
   *
   */
  public void close() {
    try {
      if (stmt != null)
        stmt.close();
      if (conn != null) {
        if (!conn.isClosed()) {
          conn.close();
        }
      }
    } catch (SQLException ex) {
      ex.printStackTrace();
    }
  }
}

完成後,在控制器組件裡可以通過DatabaseBean的execute_update()方法來執行更新操作,通過execute_query()來執行查詢操作。這裡執行的查詢操作後把結果集放在ParamBean裡(關於parambean的內容請參看前一篇的文章《如何在控制器組件與模型組件相互傳送數據》)。至此,完成了這個DatabaseBean的說明:)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved