仓酷云

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

[学习教程] JAVA网页编程之基于JSP手艺的数据库毗连

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。js|数据|数据库|数据库毗连相对基于传统的Client/Server形式的数据库体系,Web数据库体系接纳三层扫瞄器/服务器布局(即收集扫瞄器/Web服务器/数据库服务器布局),具有极年夜的上风。Web数据库体系充实发扬了DBMS高效的数据存储与办理才能,以B/S形式为平台,将客户端一致为Web扫瞄器,为用户供应利用烦琐、内容丰厚的数据库服务,已成为Internet和Intranet供应的中心服务,为Internet上的电子商务供应手艺撑持。Web数据库体系的关头手艺是Web与数据库的毗连和会见优化。Web数据库毗连手艺
罕见的Web数据库毗连手艺有:CGI手艺、WebAPI手艺、RAD手艺和JDBC手艺等。最早呈现的CGI手艺失掉了几近一切的Web服务器的撑持,可是存在着严峻的缺点,比方运转速率慢、开辟坚苦和可移植性差等。WebAPI的呈现克制了速率成绩,可是开辟加倍坚苦。各类分歧的API互不兼容,利用局限极为受限。RAD手艺(疾速开辟手艺)从基本上该改动了开辟坚苦的近况,可是它和特定的Web服务器的依附性很强,缺少通用性。
JDBC(JavaDatabaseConnectivity)手艺的最年夜上风是它为一切数据库办理体系供应一种尺度接口,能够为多种干系数据库供应一致会见,大抵能够分为以下三个部分:
◆JDBCAPI的次要特性之一是复杂且简单把握。它次要由接口构成而不是集成类,被包括在java.sql和javax.sql两个包中。这些接口由供应JDBC驱动的软件商来完成。
◆JDBC驱动办理器的感化是在JDBC运转布局上,供应最基本的指引功效,即当一个JDBCAPI程序举行数据库挪用时,它会选择一个准确的JDBC驱动程序举行毗连。
◆JDBC驱动的感化是当JDBCAPI制造的程序举行数据挪用时,实践毗连数据库并举行响应的处置。JDBC驱动供应JDBCAPI的接口类。
JSP手艺
JSP手艺的特性
JavaServerPage(JSP)是利用Java代码静态天生HTML文档的Web页面摸板。JSP运转于服务器端组件,称为JSP容器,它将JSP转化成等价的JavaServlet。正由于云云,Servlet和JSP页面终极是相干的。JSP页面具有了Servlet的一切长处,如优秀的功能和扩大性,对HTTP会话供应嵌进式撑持等。同时JSP页面还具有本身的长处,如必要时主动从头编译和与Web开辟工具具有更年夜的兼容性。
JSP容器基于每一个文件的工夫戳主动办理JSP页面。当对一个JSP页面的哀求收回后,容器起首判别与.JSP文件对应的类的名字。
假如该类不存在或比.JSP文件的老,然后容器为一个等价的Servlet创立Java源码并编译它。假如Servlet实例并未运转,容器载进该Servlet类并创立一个实例。最初,容器发送一个线程在载进的实例中处置以后的HTTP哀求。以是,一个JSP页面有三种存在情势,即JSP源码、Java源码和已编译的Java类。
JSP元素能够分为三种:伪指令、剧本元素(包括表达式、Script和声明)和举措。个中,伪指令是唆使JSP容器天生甚么代码的命令;在表达式和Script中可使用9个隐含对象;举动是创立、修正或利用对象的高层JSP元素,利用严厉的XML语法编码。
使用JSP完成Web与数据库的毗连
Java利用JDBC手艺处置数据库是一种综合、通用体例,完成与数据库的毗连,实行查询和提取数据等操纵。良多干系数据库办理体系都带有JDBC驱动程序。详细步骤以下:
1.完成情况设置,导进java.sql包,命令以下:

#importjava.sql.*
2.载进驱动器
JDBC标准根据驱动器布局将驱动器分别为JDBC-ODBC桥、纯Java到数据库两头件和纯Java间接到数据库几品种型。在此,接纳当地API与部分Java范例驱动器,显式创立一个以下的驱动器实例并用驱动器办理器注册:
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());
3.毗连到数据库
驱动器办理器保存已注册驱动器列表,挪用其getConnection()办法失掉Connection对象。个中getConnection()的参数分离是数据库服务器的IP地点、端标语、库名和登录数据库所需的账号与暗码,示比方下:
Connectionconn=DirverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:demo","username","password");

4.语句接口
SQL言语由从一个干系数据库中创立、暗示和抽取数据的语句构成。JDBC供应的这些SQL语句的面向对象的暗示用以封装其文本、实行形态和了局。这类暗示称为java.sql.Statement接口。利用预编译SQL的PreparedStatement和挪用存储历程的CallableStatement这两个子接口扩大了Statement的功效,示比方下:
Statementstmt=conn.createStatement();
5.取得了局集
一个了局集是表格行的排序列表,利用JDBC中的java.sql.ResultSet接口暗示。了局集由Statement接口的executeQuery()办法或一些元数据办法挪用发生,示比方下:
ResultSetrs=stmt.executeQuery(sql);
使用毗连池优化会见效力
在本实例中,使用层利用WebLogic6.1,数据库层接纳Oracle8.1.6,客户端利用Navigate扫瞄器。
实例
在本实例中创建一个定名为ConnectionPool的毗连池。ConnectionPool的基础属性以下:
m_ConnectionPoolSize毗连池中毗连数目上限;
m_ConnectionPoolMax毗连池中毗连数目下限;
m_ConnectionUseCount一个毗连的最年夜利用次数;
m_ConnectionTimeout一个毗连的最漫空闲工夫;
m_MaxConnections=-1统一工夫的最年夜毗连数;
m_timer准时器。
这些属性界说了毗连池与个中的每一个毗连的无效形态值。
毗连池的自我办理,实践上就是经由过程准时地对每一个毗连的形态和毗连的数目举行判别而举行响应操纵。
这里能够界说出ConnectionPool要完成办理所必要的基础接口,详细见下:
publicclassConnectionPoolimplementsTimerListener{
  publicbooleaninitialize()//毗连池初始化
  publicvoiddestroy()//毗连池的烧毁
  publicsynchronizedjava.sql.ConnectiongetConnection()//取一个毗连
  publicsynchronizedvoidclose()//封闭一个毗连
  privatesynchronizedvoidremoveFromPool()//把一个毗连从毗连池中删除
  privatesynchronizedvoidfillPool()//保护毗连池巨细
  publicsynchronizedvoidTimerEvent()//准时器事务处置函数
}
经由过程这几个接口,已能够完成毗连池的基础办理。在TimeEvent()函数中完成毗连池的形态查验事情,fillPool()时毗连池最少坚持最小毗连数。由于用户要保留每个毗连的形态,以是还必要一个数据库毗连对象见下:
classConnectionObject{
  publicjava.sql.Connectioncon;publicbooleaninUse;//是不是被利用标记
  publiclonglastAccess;//比来一次入手下手利用工夫
  publicintuseCount;//被利用次数
}
到场了ConnectionObject对象后,在ConnectionPool中操纵的应当只是ConnectionObject,而别的历程必要的只是ConnectionObject的con属性。因而这里再到场以下一个类,作为别的历程取得与前往毗连的接口:
CLASSConn{
  GetConnection();//从毗连池中掏出一个无效毗连
  CloseConnection();//前往毗连,此时并没有封闭毗连,只是放回了毗连池
  DestroyPool();//烧毁毗连池
}
今朝接纳JSP手艺构建B/S布局的Web数据库体系是对照盛行的体例,同时接纳数据库毗连池的体系在效力和不乱性上比接纳传统的别的体例的体系要好很多。数据库毗连池是一种对全部体系中对照庞大的成绩的一种可行的办理举措。但在实践使用中,JDBC毗连只是年夜型Web使用体系的一小部分,数据库毗连池办理程序与Web服务器、JSP引擎和RDBMS引擎的办理战略都有大概产生抵触。用户应当周全思索体系中的各个部分,如许才干充实发扬其高效性。

前些天,在CSDN上看到了一个消息,说是ASP.NETAJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-18 16:49:12 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-22 13:48:27 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
因胸联盟 该用户已被删除
地板
 楼主| 发表于 2015-1-24 12:53:22 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-1 13:08:12 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小魔女 该用户已被删除
6#
发表于 2015-2-4 21:14:52 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
再现理想 该用户已被删除
7#
发表于 2015-2-10 11:29:36 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
分手快乐 该用户已被删除
8#
发表于 2015-3-2 22:22:45 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-11 07:01:36 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-17 22:59:59 | 只看该作者
是一种突破用户端机器环境和CPU
深爱那片海 该用户已被删除
11#
发表于 2015-3-25 04:30:31 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 11:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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