Jdbc-4-连接池自定义框架课件

上传人:我*** 文档编号:144901397 上传时间:2020-09-14 格式:PPT 页数:18 大小:121KB
返回 下载 相关 举报
Jdbc-4-连接池自定义框架课件_第1页
第1页 / 共18页
Jdbc-4-连接池自定义框架课件_第2页
第2页 / 共18页
Jdbc-4-连接池自定义框架课件_第3页
第3页 / 共18页
Jdbc-4-连接池自定义框架课件_第4页
第4页 / 共18页
Jdbc-4-连接池自定义框架课件_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《Jdbc-4-连接池自定义框架课件》由会员分享,可在线阅读,更多相关《Jdbc-4-连接池自定义框架课件(18页珍藏版)》请在金锄头文库上搜索。

1、北京传智播客教育 ,JDBC开发,北京传智播客教育 ,Tip:使用数据库连接池优化程序性能,DB,Dao,servlet,用户3,用户1,用户2,用户n,connection,缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。,应用程序直接获取链接的缺点,北京传智播客教育 ,Tip:使用数据库连接池优化程序性能,DB,Dao,servlet,用户3,用户1,用户2,用户n,connection,connection,c

2、onnection,connection,connection,连接池,用从连接池 中获得的连 接与数据库 通迅,北京传智播客教育 ,Tip:编写数据库连接池,编写连接池需实现java.sql.DataSource接口。DataSource接口中定义了两个重载的getConnection方法: Connection getConnection() Connection getConnection(Stringusername, Stringpassword) 实现DataSource接口,并实现连接池功能的步骤: 在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入Lin

3、kedList对象中。 实现getConnection方法,让getConnection方法每次调用时,从LinkedList中取一个Connection返回给用户。 当用户使用完Connection,调用Connection.close()方法时,Collection对象应保证将自己返回到LinkedList中,而不要把conn还给数据库。 Collection保证将自己返回到LinkedList中是此处编程的难点。,北京传智播客教育 ,Tip:数据库连接池核心代码,使用动态代理技术构建连接池中的connection,proxyConn = (Connection) Proxy.newPro

4、xyInstance(this.getClass() .getClassLoader(), conn.getClass().getInterfaces(), new InvocationHandler() /此处为内部类,当close方法被调用时将conn还回池中,其它方法直接执行 public Object invoke(Object proxy, Method method, Object args) throws Throwable if (method.getName().equals(close) pool.addLast(conn); return null; return met

5、hod.invoke(conn, args); );,北京传智播客教育 ,Tip:开源数据库连接池,现在很多WEB服务器(Weblogic, WebSphere, Tomcat)都提供了DataSoruce的实现,即连接池的实现。通常我们把DataSource的实现,按其英文含义称之为数据源,数据源中都包含了数据库连接池的实现。 也有一些开源组织提供了数据源的独立实现: DBCP 数据库连接池 C3P0 数据库连接池 实际应用时不需要编写连接数据库代码,直接从数据源获得数据库的连接。程序员编程时也应尽量使用这些数据源的实现,以提升程序的数据库访问性能。,北京传智播客教育 ,Tip:DBCP数据

6、源,DBCP 是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下两个 jar 文件: Commons-dbcp.jar:连接池的实现 Commons-pool.jar:连接池实现的依赖库 Tomcat 的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。,北京传智播客教育 ,Tip:DBCP数据源,使用DBCP示例代码:,static InputStream in = JdbcUtil.class.getClassLoader(). getResourceAsStream(dbcpconfig.pro

7、perties); Properties prop = new Properties(); prop.load(in); BasicDataSourceFactory factory = new BasicDataSourceFactory(); dataSource = factory.createDataSource(prop); ,北京传智播客教育 ,Tip: C3P0 数据源,北京传智播客教育 ,Tip:配置Tomcat数据源,查看Tomcat文档,示例代码:,Context initCtx = new InitialContext(); Context envCtx = (Conte

8、xt) initCtx.lookup(java:comp/env); dataSource = (DataSource)envCtx.lookup(jdbc/datasource);, ,北京传智播客教育 ,Tip:JNDI技术简介,JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包, 这套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需通过名称检索即可。 其核心API为Context,它代表JND

9、I容器,其lookup方法为检索容器中对应名称的对象。,北京传智播客教育 ,编写自己的JDBC框架,北京传智播客教育 ,Tip:元数据 DataBaseMetaData,元数据:数据库、表、列的定义信息。 Connection.getDatabaseMetaData() DataBaseMetaData对象 getURL():返回一个String类对象,代表数据库的URL。 getUserName():返回连接当前数据库管理系统的用户名。 getDatabaseProductName():返回数据库的产品名称。 getDatabaseProductVersion():返回数据库的版本号。 ge

10、tDriverName():返回驱动驱动程序的名称。 getDriverVersion():返回驱动程序的版本号。 isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。,北京传智播客教育 ,Tip:元数据 ParameterMetaData,PreparedStatement . getParameterMetaData() 获得代表PreparedStatement元数据的ParameterMetaData对象。 Select * from user where name=? And password=? ParameterMetaData对象 getParame

11、terCount() 获得指定参数的个数 getParameterType(intparam) 获得指定参数的sql类型(MySQL驱动不支持该方法),北京传智播客教育 ,Tip:元数据 ResultSetMetaData,ResultSet. getMetaData() 获得代表ResultSet对象元数据的ResultSetMetaData对象。 ResultSetMetaData对象 getColumnCount() 返回resultset对象的列数 getColumnName(intcolumn) 获得指定列的名称 getColumnTypeName(intcolumn) 获得指定列的

12、类型,北京传智播客教育 ,Tip:使用元数据简化JDBC代码,业务背景:系统中所有实体对象都涉及到基本的CRUD操作: 所有实体的CUD操作代码基本相同,仅仅发送给数据库的SQL语句不同而已,因此可以把CUD操作的所有相同代码抽取到工具类的一个update方法中,并定义参数接收变化的SQL语句。 实体的R操作,除SQL语句不同之外,根据操作的实体不同,对ResultSet的映射也各不相同,因此可义一个query方法,除以参数形式接收变化的SQL语句外,可以使用策略模式由qurey方法的调用者决定如何把ResultSet中的数据映射到实体对象中。,Tip:自定义JDBC框架的应用,改写前面的客户管理系统,北京传智播客教育 ,北京传智播客教育 ,Tip:O-R Mapping简介,什么是O-R Mapping 常用O-R Mapping映射工具 Hibernate Ibatis(MyBatis) Commons DbUtils(只是对JDBC简单封装),

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号