数据源可以获得数据库连接,是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>
调用方式同上。