时间:2021-07-01 10:21:17 帮助过:2人阅读
从这里可以看出开源数据库连接池的使用并没有简化代码,但是在内部实现时优化了性能。
继续增加扩展性可以将参数写入配置文件并编写utils工具类。
参数配置文件读取方式
Properties properties=new Properties(); properties.load(new FileInputStream(this.getClass().getResource("url").getFile())); DataSource basicDataSource=BasicDataSourceFactory.createDataSource(properties);
c3p0 数据库连接池的使用此处不深入学习
Tomact内部提供的数据库连接池
tomact内部连接池就是dbcp
Tomcat并不支持所有的JavaEE规范,要使用内置的dbcp需要通过JNDI技术
<Context> <Resource name="jdbc/datasource" auth="Container" type="javax.sql.DataSource" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/jdbc" maxActive="8" maxIdle="4"/> </Context>
1,在tomcat安装目录/conf/context.xml中进行配置对tomcat内部所有虚拟主机中任何工程都有效
2,在tomcat安装目录/comfig/Catalina/虚拟主机目录/context.xml配置对当前虚拟主机任何工程都有效
3, 在web工程根目录/meta-inf/context.xml配置只对当前工程有效。
用JNDI访问连接池原理
1,将一个java 对象,绑定在JNDI容器中,为java对象起一个名字
2,java程序通过名字检索到该对象并调用。
访问具体过程
1,配置context文件
2,tomcat启动时自动加载配置文件,根据配置文件创建连接池
3,为连接池对象绑定名称
4,通过名称检索访问被绑定对象
核心APIContext,javax.naming.Context接口。
注意事项
1,tomcat连接数据库,而非自己工程连接数据库,所以需要将驱动jar包复制在tomcat/lib目录下
2,Java程序通过JNDI访问对象----该java程序必须运行在同一个JDNI容器中,所以该java程序通常是Servle或者Jsp等运行在tomcat内部的程序。
//创建检索对象 Context initCtx=new InitialContext(); //默认查找顶级java名称串,固定为"java:comp/env" Context envCtx=(Context)initCtx.lookup("java:comp/env"); //根据名称设置查找连接池对象 DataSource ds=(DataSource)envCtx.lookup("jdbc/TestDB"); //或得连接池中的一个连接 Connection conn=ds.getConnection();
数据库连接池
标签: