欢迎来到天天文库
浏览记录
ID:10532781
大小:54.00 KB
页数:3页
时间:2018-07-07
《用jsp访问电子商务网站数据库 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用JSP访问电子商务网站数据库[摘要]高效的icrosoftSQLServer,MySQL和MSAccess等各种数据库。 JavaBean技术是一种可重复使用且跨平台的软件组件,它为软件开发者提供了一种极佳的解决方案,使他们可以利用JavaBean技术封装事务逻辑,很好地实现业务逻辑和客户端操作的分离,使系统具有更好的灵活性和适用性。其工作原理是将数据库的基本操作逻辑封装在JavaBean包中,通过JSP调用JavaBean来实现数据库的连接。首先将用Java编写的数据库连接和对数据库的基本操作的程序编译,生成*.class文件,然后就可以通过J
2、SP调用JavaBean来实现数据库的操作。使用JavaBean提高了代码的重用程度,简化了程序设计的复杂度。 2.连接池技术 虽然JDBC(JavaBean)作为一种数据库访问技术具有诸多优点,但在电子商务网站中,当有大量的用户同时访问时,采用此种技术反而会使系统性能下降。为了解决这一问题,在JSP中,把连接池技术和JDBC(JavaBean)结合起来使用。 连接池(ConnectionPool)就是众多连接对象的“缓冲存储池”,也就是连接对象的集合体。连接池负责管理数据库连接的建立、释放和调度。事前连接池先建立若干个连接,放置在内存对象
3、中,当有数据库访问请求时,不需要执行连接数据库的操作,只需从连接池的空闲队列中取用连接;数据库访问完成后,将连接放回连接池中,供其他数据库操作时复用连接池中的连接。应用连接池技术极大地减少了连接和关闭数据库的操作,非常显著地提高了系统性能。 三、连接池实例 本例建立的数据库连接池,可以高效地实现多用户并发对数据库的访问,数据库使用的是Oracle。 publicclassMyConPool{ privateStringdriver="oracle.jdbc.driver.OracleDriver"; privateStringurl
4、="jdbc:oracle:thin:DBServer:1521:OraDB"; privateStringuser=""; privateStringpass=3;//连接池初始化时的连接数 privateintincrementConNum=2; publicintActiveCon=0;//当前正使用的连接数 publicVectorPool=nepleDateFormatformatter=nepleDateFormat("yyyy-MM-ddHH:mm:ss"); java.util.DatecurrentTime-1=nee=
5、formatter.format(currentTime-1); //初始化initiateConNum个数据库连接 publicsynchronizedvoidinitiatePool(){ addConnection(initiateConNum); }//获得数据库连接 publicsynchronizedConnectiongetConnection()throentAt(0); //取连接池中空闲连接 Pool.removeElementAt(0); …//判断连接的有效性 } elseif(ActiveConConMa
6、x){ addConnection(incrementConNum); conn=getConnection(); } elseif(ActiveCon==ConMax){ returnConnection((Connection)Pool.firstElement()); conn=getConnection(); } …//判断conn是否为空,若不空则ActiveCon加1 return(conn);} //创建新的数据库连接 privateConnectioncreateConnection(){ Connection
7、conn=null; conn=DriverManager.getConnection(url,user,pass个空闲连接 publicsynchronizedvoidaddConnection(intconnum){ … for(inti=0;iconnum;i){ Connectionconn=createConnection(); if(conn!=null) Pool.addElement(conn);}//初始化了的连接保存到连接池中 … } //释放一个数据库连接,并把该连接保存到连接池中 publicsynchr
8、onizedvoidreturnConnection(Connectionconn){ Pool.addE
此文档下载收益归作者所有