IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 操作系统 > LINUX > RedHatLinux网络服务器构架实务(七)

RedHatLinux网络服务器构架实务(七)

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

vi/home/www/cnmsql.jsp
##源代码如下:
<%@pagelanguage=&java&import=&java.sql.*&%>
<%
Class.forName(&org.gjt.mm.mysql.Driver&);
Connectionconn=DriverManager.getConnection(&jdbc:mysql://host_name/db_name&,&user_name&,&password&);
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(&select*fromprov&);
rs.next();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.next();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.previous();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.last();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.first();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.close();
stmt.close();
conn.close();
%>

4测试该程序
lynxhttp://www.yesgo.loc/cnmysql
##正确的结果应该是:

1安徽
2北京
1安徽
34台湾
1安徽

例二:使用连接池连接数据库
1建立数据源
vi/usr/local/resin/conf/resin.conf

<resource-ref>
<res-ref-name>jdbc/yesgo</res-ref-name>//数据源名称
<res-type>javax.sql.DataSource</res-type> //数据源类型
<init-paramdriver-name=&org.gjt.mm.mysql.Driver&/>//数据库驱动
<init-paramurl=&jdbc:mysql://localhost/yesgo&/>//连接串
<init-paramuser=&your_user_name&/>//用户名
<init-parampassword=&your_password&/>//密码
<init-parammax-connections=&20&/>//最大连接数
<init-parammax-idle-time=&30&/> //延时时间
</resource-ref>

2创建JSP源文件
touch/home/www/testpool.jsp
chown-Rwww/home/www/testpool.jsp
chgrp-rroot/home/www/testpool.jsp
chmod771/home/www/testpool.jsp

vi/home/www/testpool.jsp
##源代码如下:

<%@pagelanguage=&java&import=&java.sql.*,com.caucho.sql.*;&%>
<%
DBPoolpool=newDBPool();
Connectionconn=pool.getPool(&data_source_name&).getConnection();
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(&select*fromprov&);
rs.next();
out.print(rs.getString(&prov_id&)+rs.getString(&prov_name&)+&<br>&);
rs.next();
out.print(rs.getString(&prov_id&)+rs.getString(&prov_name&)+&<br>&);
rs.previous();
out.print(rs.getString(&prov_id&)+rs.getString(&prov_name&)+&<br>&);
rs.last();
out.print(rs.getString(&prov_id&)+&&+rs.getString(&prov_name&)+&<br>&);
rs.first();
out.print(rs.getString(&prov_id&)+rs.getString(&prov_name&)+&<br>&);
rs.close();
stmt.close();
conn.close();
%>

3调试该程序
lynxhttp://www.yesgo.loc/testpool.jsp
##处理的结果跟例一是一样的:

1安徽
2北京
1安徽
34台湾
1安徽

例三:使用处理层连接数据库
##本例告诉你如何使用组件
##其实你完全可以写一个bean来处理数据库,而不用象例二那么罗索。只用四条语句就可以取出数据库中的所有数据并显示出来,这样做实现了处理层和逻辑层的彻底分离,由逻辑层发出指令、由处理层去响应相关处理,记录集也不会返回到逻辑层的jsp页面,而由处理层的bean处理,使得代码非常精简,效率也更高。至于如何书写组件不是本文档的重点,下面仅给出一个组件的例子并说明逻辑层的调用方法,你会发现其实逻辑层是个官僚,处理层是下属,呵呵。

1创建处理层组件

下面的组件是我为公司写的数据库处理组件的简化版本,考虑到篇幅和可读性等问题,这里我简化了它的功能(象数据分页、批量更新、获取字段数和字段名称,用set和get提高其扩展性、对其他连库方法的支持等都没有出现在下面的代码中),使之包含所有常用的功能并使之更加清晰和易于理解;其二,我将连库动作加到了构造函数中,这是个优点也是个缺点,优点是简化了连库动作,缺点是降低了通用性,我没有添加设置数据源等方法,从而每当变换一次数据库就需要改写组件中的连接池名称,这在做一个固定项目的时候是可以的,如果你需要set数据源,可以自行添加;
##使用组件的方法:
我这里说的是使用bean的通用方法,你建立自己的bean目录可以仿照该例子。在你的站点根目录下建立resin.conf中指定的存放bean的目录,我上面的举例是classes,那你就建立classes目录,那么classes就是你站点的class根目录。然后在下面依次建立comgledecityyesgosql,注意它们之间是父子关系,不是同级文件夹,然后将下面即将建立的DBBridge.java放到&站点根目录classescomgledecityyesgosql&目录下,然后将该文件上传到服务器端即可。上面的步骤在微软平台上使用UltraDev之类的开发工具即可完成,当然手工也可以。

源文件如下:

//------------------------------------------------------------------------------
//File:DBBridge.java
//Copyright(c)2001-2002Mr.FengjunZhao.AllRightsReserved.
//Author:赵凤君@06/18/01
//LastRevision:赵凤君@01/18/2002
//Description:数据库接口类。一个统一的数据库接口,实现了逻辑层和数据层的彻底分离,封装了常用的数据库操作。主要功能是:连接数据库、执行SQL语句、数据库取值操作、数据分页、清除数据、关闭数据库等。
//Version:简化版1.0
//------------------------------------------------------------------------------

//指定包目录
packagecom.gledecity.yesgo.sql;

//导入包
importjava.sql.*;
importcom.caucho.sql.*;

publicclassDBBridge{
//声明属性
privateDBPoolpool;
privateConnectionconn;
privateResultSetrs;
privateStatementstmt;

//--------------------------------------构造函数---------------------------------
publicDBBridge(){
 pool=null;
 conn=null;
 rs=null;
 stmt=null;
 try{open();}
catch(java.sql.SQLExceptionex){ex.toString();}
}
//

//连接数据库的方法
publicvoidopen()
throwsSQLException{
 if(conn!=null&&!conn.isClosed())
thrownewSQLException(&Theconnectionhasbeenestablishedalready.&);
 clear();
 pool=newDBPool();
 conn=pool.getPool(&your_data_source_name&).getConnection();
}

//执行SQL语句的方法,将JDBC中的executeQuary()和executeUpdate()两个方法//合而为一,注意返回值为整形,
publicintexecSQL(StringsqlStmt)
throwsSQLException{
 if(conn==null||conn.isClosed())
thrownewSQLException(&Thisconnectionhasnotbeenestablishedyet.&);
 if(sqlStmt==null)
thrownewSQLException(&SQL-statementisnull.&);
 clear();
 conn.setAutoCommit(true);
 stmt=conn.createStatement();
 if(sqlStmt.toUpperCase().startsWith(&SELECT&)){
rs=stmt.executeQuery(sqlStmt);
return-1;
 }
 else{
intnumRow=stmt.executeUpdate(sqlStmt);
clear();
returnnum

关键词标签:实务,构架,网络服务,r

相关阅读 安装红帽子RedHat Linux9.0操作系统教程 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 多种操作系统NTP客户端配置 Linux操作系统修改IP Linux实现SCSI硬盘热插拔及在线识别 Linux下用CDMA modem拨号上网

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程 安装红帽子RedHat Linux9.0操作系统教程 Linux服务器:设计高性能网站架构-LLMP Linux服务器:设计高性能网站架构-LLMP 使用Clonezilla迁移到虚拟Linux环境 使用Clonezilla迁移到虚拟Linux环境 Linux上的MRTG流量监控中心 Linux上的MRTG流量监控中心 Linux 双网卡绑定一个IP原理及实现 Linux 双网卡绑定一个IP原理及实现 linux和windows等系统远程控制ubuntu桌面 linux和windows等系统远程控制ubuntu桌面

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载 linux命令行浏览器的使用方法 Linux NFS服务固定端口及防火墙配置 U盘安装Ubuntu 10.04 Linux清除用户登录记录和命令历史方法