通过连接池与数据源建立数据库连接

    数据源可以获得数据库连接,是DriverManager工具的一个替代,通常数据源是从连接池中获得的连接对象。当程序需要连接对象时从数据池中取出一个,当连接对象用完毕将其放回连接池,从而避免每次都需要申请。

    所以抽重点,传统的链接数据库每次访问都需要加载驱动器,然后连接,一大堆代码重复使用,当需要更改的时候,需要一个个更改,而对于数据池的连接方式,需要更改的时候只需要更改数据源文件。

贴别注意!!!不同版本的连接会有些改变,如果出问题不要慌。

数据源文件分为两类:

第一类:配置局部数据源

    局部数据源只能被定义数据源的应用程序中使用。

    在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
      name="jdbc/sampleDS"                   //数据源名
      type="javax.sql.DataSource"            //指定该资源的类型
      maxActive="4"                          //同时活动连接实例的最大数
      maxIdle="2"                            //可空闲的最大连接数
      username="root"                        //数据库用户名
      maxWait="5000"                         //在没有可用连接的情况下,抛出异常前等待的最大毫秒数
      driverClassName="com.mysql.jdbc.Driver"  //使用的JDBC驱动程序完整的类名
      password="123"                          //数据库密码
      url="jdbc:mysql://localhost:3306/mydata"/>   //传递给JDBC驱动程序的数据库URL
</Context>

    建立好之后怎么调用呢?

Context context = new InitialContext();
DataSource ds =  (DataSource)context.lookup("java:comp/env/jdbc/sampleDS");

Connection dbconn = dataSource.getConnection();

第二类:配置全局数据源

    全局数据源可被所有应用程序使用

    1.首先通过<tomcat-install>/conf/server.xml文件的<GlobalNamingResources>定义,代码如下:

<Resource
      name="jdbc/paipai"                   //数据源名
      type="javax.sql.DataSource"            //指定该资源的类型
      maxActive="4"                          //同时活动连接实例的最大数
      maxIdle="2"                            //可空闲的最大连接数
      username="root"                        //数据库用户名
      maxWait="5000"                         //在没有可用连接的情况下,抛出异常前等待的最大毫秒数
      driverClassName="com.mysql.jdbc.Driver"  //使用的JDBC驱动程序完整的类名
      password="123"                          //数据库密码
      url="jdbc:mysql://localhost:3306/mydata"   //传递给JDBC驱动程序的数据库URL
/>

    2.然后在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
  <ResourceLink
    global = "jdbc/paipai"     //指定在全局JNDI环境中所定义的全局资源名
    name = "jdbc/sampleDS"     //指定数据源名
    type = "javax.sql.DataSource"/>   //资源类型
<WatchedResource> WEB-INF/web.xml </WatchedResource>
</Context>

调用方式同上。

猜你喜欢

转载自blog.csdn.net/qq_38367681/article/details/83718700