欢迎来到天天文库
浏览记录
ID:48193718
大小:560.50 KB
页数:25页
时间:2020-01-15
《在Web组件中操作数据库.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在Web组件中操作数据库在本讲中您能了解如下知识点连接数据库的各种方式应用数据库连接池技术应用DAO模式实现持久层JDBC对数据库的事务支持实现二进制字段的读写应用批处理数据访问技术1、在Web组件中连接数据库(1)采用JDBC-ODBC桥方式连接数据库在控制面板种配置出ODBC的数据源名称DSN在代码中加载JDK中所提供的JDBC-ODBC桥的驱动程序类Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ConnectionconDB=DriverManager.getConnection("jdbc:odbc:studlist");您知道其缺
2、点吗?在实际项目开发中不会使用该方式!(2)采用数据库厂商提供的JDBC驱动程序方式直接连接数据库获得该厂商所提供的JDBC驱动程序的*.jar包文件并将驱动程序的*.jar包文件导入到Web系统的WEB-INF/lib目录中您知道其缺点吗?在代码中加载其驱动程序类和连接数据库您知道其缺点吗?(3)采用数据库连接池实现连接数据库JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接池技术是解
3、决这个问题最常用的方法,其工作原理:2、数据库连接池的主要操作过程(1)建立数据库连接池对象(服务器启动)(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)(3)对于一个数据库访问请求,直接从连接池中得到一个连接(4)存取数据库中的数据(5)将连接重新放入连接池中(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。思考如果连接池空闲连接都拿完了,怎么办?连接池没有空闲连接时,连接池会不断产生连接吗?所有的活跃连接一直不归还连接池,连接池也不再产生新的连接,该怎么办?什么时候触发回收机制?什么样的连接是无效连接?(3)应用DBCP的代码
4、示例(2)所需要的系统包文件commons-collections.jar3、应用ApacheDBCP组件(1)DBCP是一个依靠Jakartacommons-pool对象池机制的、commons-dbcp-1.2.2.jar和commons-pool-1.2.jar数据库连接池.DBCP可以直接的在应用程序用使用DBCP既可以编程也可以配置方式被应用4、对DBCP有关的各个配置参数的说明(1)连接池创建时产生的初始化连接数,默认为0initialSize=10(2)连接池在同一时间内分配的最大使用连接数量,设负数为没有限制maxActive=50(3)最大空闲连接,没有多余的连接被释放
5、或负数时为没有限制maxIdle=20(4)最小空闲连接,没有多余的连接被创建或0为不创建minIdle=5(5)最大等待毫秒数,没有可用连接时,超过此时间会产生出错误信息maxWait=1000(6)是否回收无效连接,默认是falseremoveAbandoned=true(7)几秒后回收无效连接,removeAbandoned必须为trueremoveAbandonedTimeout=180(8)是否在自动回收超时连接的时候打印连接的超时错误,默认为falselogAbandoned=true(9)取得连接是否进行有效性验证,默认为false,如果验证失败,会删除此连接转而连接其他的
6、连接testOnBorrow=true(10)对空闲的连接空闲是否进行有效性验证,如果验证失败,会删除此连接testWhileIdle=true(11)返回连接时是否进行有效性验证testOnReturn=true5、常用的SQL语句的语法(1)SQL数据定义功能(DDL)主要完成定义数据库的结构,包括数据库本身、数据表、目录、视图等数据库元素。(2)SQL数据操纵功能(DML)主要完成在数据库中检索、修改、添加、删除等方面的任务希望重点掌握这些功能的SQL语句及语法(3)SQL数据控制语言(DCL)主要完成管理数据库中数据的存储权限的任务(1)基本的思路(持久化)(2)表的个数:业务实
7、体(某一类型的数据)------表6、数据库表的逻辑设计(3)优化表的个数:合并和分离7、设计每一张数据库表的结构(1)基本的思路依据业务实体中的所包含各个属性及每一个属性所对应的物理量的类型。满足数据库设计的范式(2)设计各个表中的字段和类型8、决定各个表之间的关系(1)关系类型:一对一、一对多、多对一、多对多(2)在表中体现上面的关系:主/外键用户信息UserInfo和BBS信息BBSInf之间的“一对多”的关联关系9、数据访问
此文档下载收益归作者所有