仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 728|回复: 6
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之JavaBean操纵Oracle数据库

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
每个人都在使用它。MySQL是开源LAMP组合的一个标准组件:Linux、Apache、MySQL和Perl/PHP。根据Evans的调查,LAMP组合的迅速推广很大程度上代表着MySQL的被广泛接受。oracle|数据|数据库本文以一个完全的JavaBean数据库会见程序扼要申明jsp操纵数据库。
本程序由3个bean构成,个中WebConstants中界说全局变量,ConnectionManager办理数据库毗连,MainBean使用WebConstants和ConnectionManager操纵数据库。

起首界说全局变量,以下:
packageWebRelease;
publicinterfaceWebConstants
{
publicstaticfinalStringdriverClass="driverClass";
constuserIdistheuseridtoconnecttodatabase
publicstaticfinalStringuserId="comm";
constpassWdistheuserpasswordtoconnecttodatabase
publicstaticfinalStringpassWd="comm123";
consturlistheurltoconnecttodatabase
publicstaticfinalStringurl="jdbc:oracle:thin:@10.2.0.1:1521:ORCL";
publicstaticfinalStringselectType="select";
publicstaticfinalStringconnection="connection";
publicstaticfinalStringconnError="conError";
}

接着创立一个数据库毗连办理bean,以下:
packageWebRelease;
importjava.io.*;
importjava.beans.*;
importjava.util.*;
importjava.sql.*;
importWebRelease.WebConstants;
importoracle.jdbc.driver.*;

publicclassConnectionManagerimplementsWebConstants
{
privatebooleandebug=true;
protectedConnectioncon;
protectedDebugWriterwriter;
PropertyChangeSupportpcs;
////////////////////////////////////////////////////////////////////////////////
publicConnectionManager()
{
pcs=newPropertyChangeSupport(this);
writer=newDebugWriter();
}
////////////////////////////////////////////////////////////////////////////////
publicvoidsetDebug(Stringb)
{
debug=b.equals("true");
}
////////////////////////////////////////////////////////////////////////////////
publicvoidaddPropertyChangeListener(PropertyChangeListenerl)
{
pcs.addPropertyChangeListener(l);
}
////////////////////////////////////////////////////////////////////////////////
publicvoidremovePropertyChangeListener(PropertyChangeListenerl)
{
pcs.removePropertyChangeListener(l);
}
////////////////////////////////////////////////////////////////////////////////
publicvoidlogin()
{
try
{
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(Exceptione)
{
if(debug){writer.writeDebug("Errorsettingdriver:"+e.getMessage());}
}
try
{
con=DriverManager.getConnection(url,userId,passWd);
pcs.firePropertyChange(connection,null,con);
if(debug)
{
writer.writeDebug("connectionsucceded!URL:"+url+"User:"+userId+
"Pwd:"+passWd);
}
}
catch(Exceptione)
{
pcs.firePropertyChange(connError,null,e);
if(debug)
{
writer.writeDebug("connectionfailed!URL:"+url+"User:"+userId+
"Pwd:"+passWd);
}
}

}
}

在MainBean中,侦听数据库是不是毗连,假如毗连则对数据库举行操纵:
packageWebRelease;
importjava.io.*;
importjava.beans.*;
importjava.util.*;
importjava.sql.*;
importWebRelease.*;

publicclassMainBeanimplementsPropertyChangeListener,WebConstants
{
privatebooleandebug=true;
protectedConnectioncon;
protectedDebugWriterwriter;
////////////////////////////////////////////////////////////////////////////////
publicMainBean()
{
writer=newDebugWriter();
}
////////////////////////////////////////////////////////////////////////////////
publicvoidpropertyChange(PropertyChangeEventevt)
{
Stringprop=evt.getPropertyName();
//seeifwegotaconnection
if(prop.equals(connection))
{//oksoupdatethelocalconnection
try
{
//makesureitreallyisaconnection
con=(Connection)evt.getNewValue();
}
catch(Exceptione)
{
writer.writeDebug("Errorconnectingtodatabase"+e.getMessage());
}
}
}
////////////////////////////////////////////////////////////////////////////////
publicvoidsetConnectionManager(ConnectionManagercm)
{
if(cm!=null)
{
//toremovetheoldlistenerfromcm
//toavoidconfusioninthemainbean
cm.removePropertyChangeListener(this);
cm.addPropertyChangeListener(this);
if(debug)
{
writer.writeDebug("MainBean;Setconnectionmanager"+cm.toString());
}
}
else
{
if(debug)
{
writer.writeDebug("MainBean;Triedtosetanullconnectionmanager");
}
}
}
////////////////////////////////////////////////////////////////////////////////
publicbooleanisConnected()
{
//seeifdatatabeisconnected
return(con!=null);
}
////////////////////////////////////////////////////////////////////////////////
publicvoidprocessQuery()
{
try
{
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery("select*fromhelloorderbyid");
writer.writeDebug("select*fromhelloorderbyid");
while(rs.next())
{
writer.writeDebug("next");
Stringstr=rs.getString("name");
writer.writeDebug(str+"&nbsp");
}
rs.close();
}
catch(Exceptione)
{
}


}
}
OK,如今我们来测试一下这个程序,创立一个测试页面:
<%@pagecontentType="text/html;charset=gb2312"%>

<html>
<head>
<title>
hello
</title>
</head>
<bodybgcolor="#ffffc0">
<h1>
<jsp:useBeanid="main"class="WebRelease.MainBean"scope="session"/>
<jsp:useBeanid="con"class="WebRelease.ConnectionManager"scope="session"/>
<%
main.setConnectionManager(con);
con.login();
%>
<%
if(main.isConnected())
out.print("mainbeanconnectsuccess!!!");
main.processQuery();
%>
</h1>

</body>
</html>
在tomcat中扫瞄这个页面,我们应当能够看到输入“Mainbeanconnectsucess!!!”
正文不是太多,但愿你能看分明。


索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。
沙发
发表于 2015-1-24 14:30:57 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
第二个灵魂 该用户已被删除
板凳
发表于 2015-2-7 11:34:55 | 只看该作者
总感觉自己还是不会SQL
再见西城 该用户已被删除
地板
发表于 2015-2-21 19:46:44 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
愤怒的大鸟 该用户已被删除
5#
发表于 2015-3-6 21:18:42 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-13 09:28:12 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
分手快乐 该用户已被删除
7#
发表于 2015-3-20 18:56:08 | 只看该作者
代替了原来VB式的错误判断。比Oracle高级不少。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表