FXMAR 发表于 2018-12-7 07:25:50

开源连接池_dbcp_c3p0_tomcat内置连接池

5.开源连接池_DBCP_C3P0
  开源数据源:
DBCP:
导包:commons-dbcp-1.4.jar    commons-pool-1.5.6.jar
  方式1:
BasicDataSource source = new BasicDataSource();
source.setDriverClassName("com.mysql.jdbc.Driver");
source.setUrl("jdbc:mysql:///day11");
source.setUsername("root");
source.setPassword("root");

  方式2:
Properties prop = new Properties();
prop.load(new FileReader("dbcp.properties"));
BasicDataSourceFactory factory = new BasicDataSourceFactory();
DataSource source = factory.createDataSource(prop);

     配置文件中:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day11
username=root
password=root

#
initialSize=10

#最大连接数量
maxActive=50

#
maxIdle=20

#
minIdle=5

#
maxWait=60000

  C3P0数据源:c3p0-0.9.1.2.jar
  方式1:
ComboPooledDataSource source = new ComboPooledDataSource();
source.setDriverClass("com.mysql.jdbc.Driver");
source.setJdbcUrl("jdbc:mysql:///day11");
source.setUser("root");
source.setPassword("root");

  方式2:
ComboPooledDataSource source = new ComboPooledDataSource();
ComboPooledDataSource source = new ComboPooledDataSource(“aaa”);

在类加载目录下名称为c3p0-config.xml的配置文件中配置:
  
  
com.mysql.jdbc.Driver
jdbc:mysql:///day11
root
root
  
   
    com.mysql.jdbc.Driver
    jdbc:mysql:///day12
    root
    root


6.开源连接池_tomcat内置连接池
  tomcat内置的数据源(DBCP):
1.如何为tomcat配置数据源
1、tomcat/conf/context.xml文件中配置配置在这个位置的信息将会被所有的web应用所共享
2、tomcat/conf///context.xml文件中可以配置标签,这里配置的信息将会被这台虚拟主机中的所有web应用所共享

3.1 tomcat/conf/server.xml文件中的标签中配置标签,这是web应用的第一种配置方式,在这个标签中配置的信息将只对当前web应用起作用
3.2 tomcat/conf///自己创建一个.xml文件,在这个文件中使用标签配置一个web应用,这是web应用第二种配置方式,在这个标签中配置的信息将只会对当前web应用起作用
3.3 web应用还有第三种配置方式:将web应用直接放置到虚拟主机管理的目录.此时可以在web应用的META-INF文件夹下创建一个context.xml文件,在其中可以写标签进行配置,这种配置信息将只会对当前web应用起作用

web应用里面导入mysql驱动mysql-connector-java-5.0.8-bin.jar
  最好把MySQL的包放入E:\Program-Files\apache-tomcat-6.0.36\lib
  

  
  1.在程序中获取这个数据源
   jndi是tomcat的组件之一
为JAVA应用程序提供命名和目录访问服务的API。例如,Tomcat服务器在启动时可以创建一个连接到某种数据库系统的数据源(DataSource)对象,并将该数据源(DataSource)对象绑定到JNDI环境中,以后在这个Tomcat服务器中运行的Servlet和JSP程序就可以从JNDI环境中查询出这个数据源(DataSource)对象进行使用,而不用关心数据源(DataSource)对象是如何创建出来的,这种方式极大地增强了系统的可维护性,当数据库系统的连接参数发生变更时,这只是Tomcat系统管理员一个人要关心的事情,而与所有的应用程序开发人员无关。
  
想要访问jndi就必须在Servlet中才能执行下列代码:
Context initCtx = new InitialContext();
Context jndi = (Context) initCtx.lookup("java:comp/env");
DataSource source = jndi.lookUp("mySource");

启动加载servlet
web.xml

    DataSourceInitServlet
    com.itheima.init.DataSourceInitServlet
1


public void init() throws ServletException {
try{
Context initCtx = new InitialContext();
Context jndi = (Context) initCtx.lookup("java:comp/env");
DataSource source = (DataSource) jndi.lookup("mySource");


Connection conn = source.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from account");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String name = rs.getString("name");
System.out.println(name);
}
rs.close();
ps.close();
conn.close();


}catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}

}
  




页: [1]
查看完整版本: 开源连接池_dbcp_c3p0_tomcat内置连接池