JNDI

JNDI

Java Naming and Directory Interface, Java命名和目录接口 (百度就行)
实现多个项目共享变量
jndi:将某一个资源(对象)以配置文件(tomacat/conf/context.xml)的形式写入;

<Environment name="jndiName" value="jndiValue" type="java.lang.String"/>

访问变量

Context ctx = new IntialContext();
String jndiName = (String)ctx.lookup("java:comp/env/jndiNmae");

连接池

数据库访问核心:->pstmt/stmt -> connection -> 1.直接数据库 2.数据源
用处:让数据库一部分保持开着的状态
常见的连接池:Tomcat-dbcp、dbcp、c3p0、druid
可以用数据源(javax.sqlDataSource )管理连接池
连接池结构

graph LR A[客户端] -->B[服务端] B --> C(连接池) C --- D[数据库] D --- C D --- C C --> B B --> A

连接池的使用

Tomcat-dbcp

在conf-->Context中配置

<Resource name="chenze" auth="Container" type="javax.sql.DataSource" maxActive="400" maxIdle="20" maxWait="5000" username="root" password="544775001"
              driverClassName="" url=""/>
属性 简介
name 指定Resource的JNDI名字
autn 指定Resource的管理者Container:由容器创建Resource Application:由web创建
type 指定resource的类型(类型详细地址)
maxActive 处于活动数量的最大值;如果为0,表示不受限制
maxIdle 处于空闲状态最大数量;如果为0,表示不受限制
maxWait 处于空闲状态最长时间(毫秒)
username 指定访问数据库的用户名
password 密码
driveClassName 指定访问数据库的驱动程序类名
url 指定数据库的URL

在项目web.xml中配置(参数与上面一致)

        <resource-ref>
            <res-ref-name></res-ref-name>
            <res-type></res-type>
            <res-auth></res-auth>
        </resource-ref>

在JDBC中 connection 指向数据源

Context ctx = new IntialContext();
DataSource ds = (DataSource)ctx.lookup("name");
Connection con = ds.getconnection();

dbcp连接池

需要jar包 commonts-dbcp-1.4.jar 和 comonts-pool- .jar

posted @ 2020-03-16 16:01  giaogiaoze  阅读(204)  评论(0编辑  收藏  举报