??xml version="1.0" encoding="utf-8" standalone="yes"?>
只要拥有理员权限就可以通过net start 启动一个服务,或者通过net stop 命o停止一个服务,从而控制以下服务中的Q何一个。在Windows XP 中,可以通过在控刉板的服务中改变想要禁用的服务QOracleOraHome...Q的启动cdQStartup TypeQ参敎ͼ双击某个服务查看其属性,然后启动类型属性从自动改ؓ手动?
使数据库在本地工作唯一需要运行的服务是OracleServiceORCL 服务Q其中ORCL 是SIDQ。这个服务会自动地启动和停止数据库(使用shutdown 中断Q。如果安装了一个数据库Q它的缺省启动类型ؓ自动。如果主要是讉K一个远E数据库Q那么可以把启动cdp动改为手动?
OracleOraHome92HTTPServer 服务QOraHome92 是Oracle Home 的名Uͼ是在安装Oracle 时自动安装的Apache 服务器。一般情况下我们只用它来讉KOracle Apache 目录下的Web 面Q比如说JSP 或者modplsql 面?
OracleOraHome92TNSListener 服务只有在数据库需要远E访问时才需要(无论是通过另外一C是在本地通过 SQL*Net |络协议都属于远E访问)。不用这个服务就可以讉K本地数据库?
OracleOraHome92ClientCache 服务~存用于q接q程数据库的Oracle Names 数据。正常情况下该服务的启动cd是配|ؓ手动的。然而,除非有一台Oracle Names 服务器,否则没有必要q行q个服务?
有四个服务是Oracle 企业理器所必须的(Oracle Enterprise ManagerQ,q个服务分别为:OracleOraHome92AgentQ智能代理)Q该服务监视数据库和企业理器请求,~省启动cd动。OracleOraHome92SNMPPeerEncapsulator 和OracleOraHome92SNMPPeerMasterAgentQ处理安全网l管理协议服务。OracleOraHome92PagingServer 通过一个用调制解调器的数字传呼机或者电(sh)子邮件发告?
OracleMTSRecoveryService 是可选的Q该服务允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务的资源管理器?
如果只是偶尔使用一下数据库Q那么可以创Z个简单的脚本d来启动和关闭服务器,q样每次只要双击脚本可以了Q可以不使用囑Ş界面?
1. 保存一个快h式自动地装蝲q些文g?
2. Oracle 服务设ؓ手动避免在Windows 启动时启动?
REM "dbstart.cmd"@echo offset ORAHOME="OraHome92"set ORASID="ORCL"net start OracleService%ORASID%REM net start Oracle%ORAHOME%HTTPServerREM net start Oracle%ORAHOME%TNSListenerREM net start Oracle%ORAHOME%ClientCacheREM net start Oracle%ORAHOME%AgentREM net start Oracle%ORAHOME%SNMPPeerEncapsulatorREM net start Oracle%ORAHOME%SNMPPeerMasterAgentREM net start Oracle%ORAHOME%PagingServerREM net start OracleMTSRecoverService
REM "dbshut.cmd"@echo offset ORAHOME="OraHome92"set ORASID="ORCL"net stop OracleService%ORASID%REM net stop Oracle%ORAHOME%HTTPServerREM net stop Oracle%ORAHOME%TNSListenerREM net stop Oracle%ORAHOME%ClientCacheREM net stop Oracle%ORAHOME%AgentREM net stop Oracle%ORAHOME%SNMPPeerEncapsulatorREM net stop Oracle%ORAHOME%SNMPPeerMasterAgentREM net stop Oracle%ORAHOME%PagingServerREM net stop OracleMTSRecoverService
一个无状态的Session bean
q接weblogic 数据库连接池
?Oracle一个表的一个字D?br />q回l客L Qservlet)
p些,now整理成笔记?/p>
1. 认安装好Oralce ?Webligc 6.1 .Jbuilder7
都是默认安装
2. 开始配|Jbuilder7 和Weblogic 的连?br /> 我参考了一Jbuilder6的配|?Q大同小?br /> q入JB7
a.打开Tools-->Configue Servers--> 选择weblogic6.x+
Enable Server 打勾
选择正确的Weblgic 安装路径
注意 昄器分辨率?024*768 才能看到下面的OK 按钮
在General?的Home Dircetory ?Work Directory一?如:
D:/bea/wlserver6.1
在Custome中填入weblogic 启动密码
其他默认
b.打开Tools--> Enterprise Setup -->CORBA
new 一?起名为Weblogic的项?br /> 在Path for ORB tools下加入Weblogic 的目?br /> 在Library for project 下加?weblogic 6.x delopy ?br /> 在compiler command 填上 idcj.exe
在Command ... for oupput Dircetory 填上一个你自己的输\?br /> c 最后确?Projects--> Default Projects Properties-->Server
选的Application Server 是Weblogic 6.x file://?/a>该已l是了,再看?br /> d 最后到我的?sh)脑点右键去修改pȝ变量
Temp 和Tmp
因ؓ默认得目录名有空|JB7q敏q个Q改Z个没I格的目?
如C:\temp 当然你得先徏立这个目?br />
3.下来在Weblogic中徏立Oracle的连接池
. 在Weblogic 控制?br /> Services -->JDBC -->Connection Pools--> Configure a new JDBC Connection Pool
在General属性页
Name :q接池名 file://?/a>取名为testPool ,注意名字区分大小?br /> URL: JDBC q接字符?file://Oracle?为: jdbc:oracle:thin:@xiw:1521:sdb
xiw为服务器?也可为IP地址
sdb为数据库?br /> Driver ClassnameQ?填入 oracle.jdbc.driver.OracleDriver
Properties(key=value): 填入 user=system file://?/a>Oracle的用户名Q也可以在这里填入密?br /> Password 先不?br /> 点击Apply // Weblogic 如果有图标闪动,表示需要重启动Webligoc讄才能生效 后面不在说明
然后点击Password 输入数据库密码?
在Connection ?
Initial Capacity : 1 file://?/a>始连接数
Maximum Capacity Q?0 file://最大连接数
Capacity Increment Q? // 初始不够Ӟ每次增加q接?br /> Refresh Period: 5 file://?/a>止网l意外中断时Q每5分钟h一ơ连接,断了p动恢?br /> 其他默认
在testing ?br /> Test Table NameQtab // Oracle 已经有了q个?Q用其他Oraclepȝ表也?br /> 下面两项选中 打勾 表示启用意外端开Ӟ自动h恢复q接
图标闪动Q表C需要重启动Webligoc
重启后:
在: Serviers -->JDBC -->Connection Pools-->testPool?
target?myserverUdchosen ?点Apply file://?/a>C那个服务器启用q个?br /> 如果有错误,一般就是前面的URL?或没有testing指定的那个表Q我在这l了很久
可能需要重?br /> 然后到Services-->JDBC-->Data Source
Configure a new JDBC Data Source
Name:自己起吧
JNDI Name: 起名为MyJNDI file://q?/a>个后面编E要用,区分大小?br /> Pool NameQtestPool file://?/a>面徏的那个池的名?br /> 然后点击Apply
在target,和前面一PmyserverUdchosen Apply
此时若有错误Q一般ؓq接池名大小写问题 ?
重启动Weblogic 完成
4 开始编E?br /> ·在JB7中新Z个空目
·在New 的Enterprise Ejb2.0 bean designer
·在可视化设计H口Q右键,New Session bean ,起名字ؓtestsqlBean type为stateless
·启动Oralce
·d一个表table3 字段?A1 再加一条数?'OKOK' file://最后在Servlet中返回OKOKq成功
·在该目中New一个Class ,作ؓq回l果用,该类q行了序列化
该类取名为TestString 代码如下Q较为粗p,没有优化Q其实可以直接返回值的Q凑合看吧?br />package testpool;
import javax.ejb.*;
import java.sql.*;
import javax.sql.*;
public class TestString implements java.io.Serializable{
private String returnS;
public TestString(String ss){
returnS=ss;
}
public String returnStr(){
return returnS;
}
public String getA1(DataSource ds, String sql)
{String temp="nono"; file://?/a>认ؓno Servlet要是q回q个是p|?br /> try{
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
stmt.executeQuery(sql);
ResultSet rs=stmt.getResultSet();
int i=rs.getRow(); file://?/a>昄改|调试时看了看
if(rs.next())
{temp=rs.getString(1);
}
rs.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return temp;
}
}
·以下修改testsqlbean.java
需要添加一些类
import java.sql.*;
import javax.sql.*;
其他Home接口或Remote接口用到诸如ResultSet ,DataSource 得自己加入就行,不再复述
d几个属?br /> String returnString;
DataSource ds;
·同时需要修改testsqlbean的ejbCreate代码为:
public void ejbCreate() throws CreateException {
try{
Context ctx=new InitialContext();
ds=(DataSource)ctx.lookup("MyJNDI"); // MyJNDI为前面配|的Weblogic的JDBC的JNDI?br /> }
catch(Exception e)
{ }
}
·然后。在可视化设计窗?testsqlBean上右?add method 取名为getMyConn q回cd为前面自建的TestString
参数为String sql
最后修改该函数代码如下Q?br /> public TestString getMyConn(String sql) {
TestString t1=new TestString(sql);
String returnString=t1.getA1(ds,sql);
return new TestString(returnString);
}
.完成?Make Project 一ơ编译通过?br /> ·在项目文件列表上Q点击web run
此时不要人工启动Weblogic 让JB7d动它
如果没有错误Q则EJB被自动部|到weblogic上,
· ~一个Servlet作ؓ客户端?
用JB7的New 一个Servlet 起名为testpoolServlet
全部代码如下
package testpool;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.naming.*;
import javax.ejb.*;
import java.rmi.RemoteException;
import java.rmi.Remote;
import testpool.testsql;
import testpool.testsqlHome;
public class testpoolServlet extends HttpServlet {
static final private String CONTENT_TYPE = "text/html; charset=GBK";
TestVector myStr;
file://Initialize global variables
public void init() throws ServletException {
}
file://Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
String sql="select * from table3"; file://?/a>LlEJB的sql语句
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("
This is=="+myStr+" | ");
The servlet has received a GET. This is the reply.
"); file://Clean up resources
public void destroy() {
}
}
.完成?Web Run Use "testpoolServlet"
或者h工启动Weblogic 输入http://localhost:7001/testpoolservlet
最后结果应该显CZؓ
This is==okok
The servlet has received a GET. This is the reply
一般错误发生ؓQ刚才Oracle插入数据Ӟ没有Commit,所以查询不到?br /> 个问题,曾迷惑我半天Q失败啊Q哈?br />
JB7q是不错的,可以q行时单步调试EJB
q可以ؓBean中徏一个testsqlBeanTestClient1Q不用Servlet也很单,作ؓ试用,不再赘述
SQL*PLUS常用命oQ?/font>
SQL> edit s<回R>
若当前目录不存在s.sql文gQ自动生?/font>s.sql文gQ?/font>
SQL> @s<回R>
pȝ会自动查询当前用户下的所有表、视图、同义词?/font>
@@文g名 ?/font>.sql文g中调用o一?/font>.sql文g时?/font>
save 文g名 缓冲区的命令以文g方式存盘Q缺省文件扩展名?/font>.sql
get 文g名 调入存盘?/font>sql文g
start 文g名 q行调入内存?/font>sql文g
spool 文g名 把这之后的各U操作及执行l果“假脱机”即存盘到磁盘文件上Q默认文件扩展名?/font>.lst
spool 昄当前的“假脱机”状?/font>
spool off 停止输出
例:
SQL> spool a
SQL> spool
正假脱机?/font> A.LST
SQL> spool off
SQL> spool
当前无假脱机
exit 退?/font>SQL*PLUS
desc 表名 昄表的l构
show user 昄当前q接用户
show error 昄错误
show all 昄所?/font>68个系l变量?/font>
edit 打开默认~辑器,Windowspȝ中默认是notepad.exeQ把~冲Z最后一?/font>SQL语句调入afiedt.buf文g中进行编?/font>
edit 文g名 把当前目录中指定?/font>.sql文g调入~辑器进行编?/font>
clear screen 清空当前屏幕昄