方案一步骤:
1、配置Tomcat/conf/context.xml添加 <Resource>
<Resource name="jdbc/books" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="sa" password=""
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=books" />
name 指定Resource的JNDI名称
auth 指定管理Resource的Manager(Container:由容器创建和管理|Application:由Web应用创建和管理)
type 指定Resource所属的Java类
maxActive 指定连接池中处于活动状态的数据库连接的最大数目
maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目
maxWait 指定连接池中的连接处于空闲的最长时间,超过这个时间会抛出异常,取值为-1,表示可以无限期等待
2、拷贝相应的jar包到Tomcat/common/lib中
/server/lib目录下的jar文件只能被Tomcat服务器访问
/shared/lib目录下的jar文件可以被所有的web应用程序访问,但不能被Tomcat服务器访问
/common/lib目录下的jar文件可以被Tomcat服务器和所有的web应用程序访问。
3、配置web项目中的web.xml添加 <resourc-ref>
<resource-ref>
<res-ref-name>jdbc/books</res-ref-name> 指定JNDI的名字,与<Resource>元素中的name一致
<res-type>javax.sql.DataSource</res-type> 指定引用资源的类名,与<Resource>元素中的type一致
<res-auth>Container</res-auth> 指定管理所引用资源的Manager与<Resource>元素中的auth一致
</resource-ref>
4、java代码
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
//获取Context对象
Context ctx= new InitialContext();
//获取DataSource对象:java:comp/env/数据源名称 固定的
DataSource source = (DataSource) ctx.lookup("java:comp/env/jdbc/books");
//获取Connection对象
Connection con = source.getConnection();
方案二:
启动Tomcat
1.打开IE输入:http://localhost:8080/admin/地址
点击左侧 Resources -> Data Sources 选择右侧下拉框中的 Create New Data Source
输入相关信息 点击 《保存》 点击 《保存你的更改》
上面操作将修改了server.xml
在server.xml的GlobalNamingResources 标签中添加了Resource
2.修改 conf/context.xml 添加
<ResourceLink name="jdbc/sqlserver" global="jdbc/sqlserver" type="javax.sql.DataSource"/>
java代码中在获取数据源是必须分两步执行
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/sqlserver");