WebLogic運用DB的Java控件訪問數據庫(1)
發表于:2007-06-11來源:作者:點擊數:
標簽:
一、方法 WebLogic頁面與數據通信時,一般采用 Java 控件直接訪問數據連接池,數據的直接操作都定義在Java控件中,頁面流做為數據的邏輯處理單元,普通頁面做為顯示層??梢钥闯鯳ebLogic這個方法是典型的三層結構,數據層(Java控件),業務邏輯層(頁面流),顯
一、方法
WebLogic頁面與數據通信時,一般采用Java控件直接訪問數據連接池,數據的直接操作都定義在Java控件中,頁面流做為數據的邏輯處理單元,普通頁面做為顯示層??梢钥闯鯳ebLogic這個方法是典型的三層結構,數據層(Java控件),業務邏輯層(頁面流),顯示層(頁面)。
二、建立連接池,數據源
配置config.xml文件,這里用的是WebLogic自帶的E:\bea\weblogic81\samples\domains\workshop的cgServer。
<JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver"
LoginDelaySeconds="1" MaxCapacity="20" Name="liwei"
PasswordEncrypted="{3DES}WBNJPYUOAvE=" Properties="user=liwei"
Targets="cgServer" URL="jdbc:oracle:thin:@localhost:1521:wincn"/>
<JDBCTxDataSource JNDIName="liwei" Name="liwei" PoolName="liwei" Targets="cgServer"/>
|
或者 工具->WebLogic Server->數據源查看器->新建數據源 步驟比較簡單,主要輸入對應參數:
DriverName="oracle.jdbc.driver.OracleDriver"
URL="jdbc:oracle:thin:@localhost:1521:wincn"
然后用戶名密碼即可。
以上內容可參看《Weblogic中JSP連接數據庫》一文。
三、相關頁面
Test\TestWeb\recordset\RecordsetController.jpf
Test\TestWeb\recordset\index.jsp
Test\TestWeb\recordset\test.jcx java控件
四、數據庫
CREATE TABLE TEST(
A VARCHAR2(10),
B VARCHAR2(10),
C VARCHAR2(10),
D VARCHAR2(10)
)
|
五、數據層(JAVA控件)
本次示例使用tblTest自定義靜態類實現返回數據集。(還可以使用netui:gird+RecordSet實現,參見自帶示例)其中update方法與insert方法十分類似,故未提供具體的實現代碼。
數據層并沒有什么復雜之處,只是對邏輯層(頁面流)提供足夠的數據操作接口。tblTest自定義的靜態類是完成數據傳遞必不可少的環節。
Test\TestWeb\recordset\test.jcx 全代碼:
package recordset; import com.bea.control.*;
import java.sql.SQLException; /*
* @jc:connection data-source-jndi-name="liwei"
*/
public interface test extends DatabaseControl, com.bea.control.ControlExtension
{
/**
* @jc:sql statement::
* INSERT INTO TEST (A,B,C,D)
* VALUES ({_A},{_B},{_C},{_D})
* ::
*/
public int insert( String _A, String _B,String _C,String _D ); /**
* @jc:sql statement::
* UPDATE TEST SET B = {_B} ,C = {_C} ,D = {_D} WHERE A = {_A}
* ::
*/
public int update( String _A, String _B,String _C,String _D );
/**
* @jc:sql statement::
* DELETE TEST WHERE A = {_A}
* ::
*/
public int delete( String _A );
/**
* @jc:sql statement::
* SELECT * FROM TEST WHERE A = {_A}
* ::
*/
public tblTest select( String _A );
/**
* @jc:sql statement::
* SELECT * FROM TEST
* ::
*/
public tblTest[] selectAll(); public static class tblTest implements java.io.Serializable
{
public String A;
public String B;
public String C;
public String D;
}
}
|