`
guiqing85
  • 浏览: 168810 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Servlet学习笔记(三)connection pool datasource dao

阅读更多
1 Access Resources.
2 Connection Pool.
3 DataSource.
4 DAO.
5 exercise.
**************************************************************
1 Access Resources.
1)要在WebApp中访问数据库,必须先将其JDBC Driver复制至%TomcatHome%/common/lib下。
2)直接创建数据源方式获得数据库连接
重写用户登录模块
create database test;

use test;
//创建用户表
create table t_user(
t_id int auto_increment primary key,
t_name varchar(20),
t_pass varchar(128),
t_role varchar(20)
)

insert into t_user(t_name,t_pass,t_role) values ('Alice','Alice','admin');
insert into t_user(t_name,t_pass,t_role) values ('Maxwell','Maxwell','guest');
insert into t_user(t_name,t_pass,t_role) values ('test','test','admin');
...

login3Web
      /WEB-INF/web.xml
      /...
     
3)通过配置连接池获得数据库连接。
a 在WebApp需要配置web.xml文件
资源引用
web.xml需要作如下配置:
  <resource-ref>
    <res-ref-name>jdbc/test</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>                   可选值:Application
    <res-sharing-scope>Shareable</res-sharing-scope> 可选值:Unshareable
  </resource-ref>

通过JNDI访问数据源
import javax.naming.*;
Context ic=new InitialContext();
DataSource ds=(DataSource)ic.lookup("java:comp/env/jdbc/test");
//ds=is.lookup("jdbc/test");
Connection con=ds.getConnection();//代替DriverManager.getConnection();

web.xml中配置环境变量(可以通过JNDI访问)
    <env-entry>
        <description>my email</description>
        <env-entry-name>email</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>narci.ltc@gmail.com</env-entry-value>
    </env-entry>
        <env-entry>
        <description>Is Trainer</description>
        <env-entry-name>isTrainer</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>true</env-entry-value>
    </env-entry>
b 在应用服务器要配置连接池。
Tomcat:server.xml
...
         <Context
            path="/login3Web">
          <Resource
            name="jdbc/test"
            type="javax.sql.DataSource"
            username="narci"           
            password="11"
            driverClassName="com.mysql.jdbc.Driver"
            maxIdle="10"
            maxWait="5000"
            validationQuery="select * from student"
            url="jdbc:mysql://localhost/test"
            maxActive="10"/>
        </Context>
...
    * maxActive
    - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
    * maxIdle
    - 同一时刻数据库连接池中处于非活动状态的最大连接数。
    * maxWait
    - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
   
   
2 Web App访问数据库
1)从结构上优化()
DAO: Data Access Object
设计DAO接口可进一步抽象持久化逻辑
VO:  Value Object:其实就是标准的Java Bean,只是对应数据库中的一张表。
Java Bean的要求
a 空参数的构造器
c 对属性的标准访问方法setter、getter方法
String name;
public void setName(String name){}
public String getName(){}
3、远程传递时需要实现java.io.Serializable

2)从性能上作优化
使用连接池,减少因物理连接带来的系统开销,提升数据库访问性能












分享到:
评论

相关推荐

    ConnectionPool 数据库连接池

    本文将深入解析“ConnectionPool”(数据库连接池)的工作原理,常见实现及使用方法。 **一、数据库连接池的概念** 数据库连接池,简单来说,就是管理数据库连接的池化技术。它预先创建一定数量的数据库连接,当多...

    给jdbc加connection pool

    4. 获取和释放连接:使用DataSource提供的getConnection()方法获取连接,使用完后调用Connection的close()方法,实际上连接会被放回连接池而不是真正关闭。 此外,除了DBCP,还有其他流行的数据库连接池实现,比如...

    JDBC Connection Pool org.apache.tomcat.jdbc.pool

    apache出品,用来取代老旧的dbcp

    自己总结的学习笔记,请大家批评指正 datasource

    下面是对"自己总结的学习笔记"中涉及的DataSource及相关知识点的详细解释。 首先,我们来看Struts-config.xml文件。Struts是一个开源的MVC(Model-View-Controller)框架,用于构建基于Java Web的应用程序。在...

    Java_C3P0_ConnectionPool.rar_C3P0_c3p0 ja_connection pool jdbc_j

    Java_C3P0_ConnectionPool.rar 文件包含的是关于Java中C3P0数据库连接池的实现和使用知识。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,尤其是在...

    DBCP( Database Connection Pool )数据库连接池

    ### DBCP(Database Connection Pool)数据库连接池详解 #### 一、简介 DBCP(Database Connection Pool)是一个开源的数据库连接池实现,它依赖于Apache Jakarta commons-pool对象池机制。DBCP允许应用程序直接...

    canal.adapter 运行异常: com.alibaba.druid.pool.DruidDataSource 解决办法

    将 client-adapter.es7x-1.1.5-jar-with-dependencies.jar 替换plugin下的jar可以解决druid报错问题,注意版本1.1.5,不是这个版本不一定能解决

    学习Spring笔记_DataSource

    通过阅读《学习Spring笔记_DataSource》这篇博文,可以深入理解Spring框架如何管理和使用DataSource,以及在实际项目中如何配置和优化,为构建高效稳定的数据库应用打下坚实基础。在实践中,不断探索和学习,掌握更...

    jsp+servlet+js+datasource+jdbc经销商系统

    【标题】"jsp+servlet+js+datasource+jdbc经销商系统"揭示了这是一个基于Web的经销商管理系统,使用了JavaServer Pages (JSP)、Servlet、JavaScript、DataSource以及Java Database Connectivity (JDBC)等核心技术,...

    spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制

    在现代企业级应用开发中,多数据源切换和分布式事务管理是常见的需求,尤其是在大型分布式系统中。...在`mult-table-demo`这个项目中,你可以找到具体的实现细节,进一步学习和理解这一技术栈的应用。

    JAVA WEB学习笔记

    【JAVA WEB学习笔记】——Tomcat中数据源的配置与使用 在Java Web开发中,数据源(DataSource)是管理数据库连接的关键组件。它提供了一种高效、灵活的方式来获取和管理数据库连接,尤其是在大型企业级应用中。...

    C3P0 DataSource Pool

    **C3P0 DataSource Pool** C3P0 是一个开源的 JDBC 连接池,它实现了数据源和 JNDI 绑定,支持 JDBC3 规范和 JDBC2 的标准扩展。C3P0 由 M-Fabrizio Bechini 创建并维护,作为一个轻量级的数据源解决方案,它广泛...

    DataSource接口介绍与使用

    三、连接池(Connection Pooling): 连接池是这么一种机制,当应用程序关闭一个Connection的时候,这个连接被回收,而不是被destroy,因为建立一个连接是一个很费资源的操作。如果能把回收的连接重新利用,会减少新...

    servlet实现oracle 基本增删改查

    import org.apache.tomcat.jdbc.pool.DataSource; public class MyServlet extends HttpServlet { private DataSource dataSource; @Override public void init() throws ServletException { dataSource = new...

    Java学习笔记

    Java学习笔记 1、连接数据库步骤 2、不同数据库的驱动程序和连接字符串 3、连接数据库常见问题 4、B/S结构和C/S结构的区别 5、如何处理中文乱码问题 6、使用JavaMail发送注册验证邮件 7、不安全的用户名密码验证 8、...

    connectionPool:Java数据库连接池

    Java数据库连接池,通常简称为...在`connectionPool-master`这个文件夹中,可能包含了关于Java数据库连接池的示例代码、配置文件或文档,你可以通过学习这些内容来深入了解如何在实际项目中应用和配置数据库连接池。

    datasource

    数据源(DataSource)是Java应用程序与数据库交互的重要接口,它在数据连接池(Connection Pool)的基础上提供了一种高效、安全的管理数据库连接的方式。在Java的JDBC API中,DataSource接口是 javax.sql.DataSource...

    SpringBoot框架Datasource注入

    在Spring Boot框架中,`DataSource`的注入是应用程序与数据库交互的基础。`DataSource`是一个接口,通常由诸如HikariCP、Druid或Tomcat JDBC等实现提供,它负责存储和管理数据库连接,使得我们的应用能够高效且安全...

    使用jsp、servlet、DataSource数据源(DBCP)、完成的图书分类增删改查全套代码

    本教程将深入探讨如何使用JavaServer Pages (JSP)、Servlet和DataSource数据源(DBCP)来实现一个完整的图书分类的增删改查(CRUD)应用。在实际的Web开发中,这样的功能是十分常见的,它能帮助我们管理数据库中的...

    Struts1配置datasource的三个common包

    DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件。数据库连接池在应用服务器中扮演着重要角色,它可以有效地管理数据库连接,避免频繁创建和销毁连接带来的性能开销。DBCP提供了...

Global site tag (gtag.js) - Google Analytics