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