|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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+" ");
}
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必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。 |
|