配置实录:
首先,把sqlserver的jar包导入到项目的lib和tomcat的lib中(两个都要)。
范例一:
在项目的META-INF下面新建一个context.xml文件,文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource" username="sa" password="ltkj"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://192.168.1.110:1433;databaseName=Think" maxActive="8" maxIdle="4" />
</Context>
然后在项目的web.xml中加上配置:
<resource-ref>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
其中res-ref-name要与上面的name一致,type也要一致,auth也是。
最后在项目中使用:
javax.naming.Context context=new javax.naming.InitialContext() ;
javax.sql.DataSource ds=(DataSource) context.lookup("java:comp/env/jdbc/test");
java.sql.Connection connection=ds.getConnection();
这样数据库链接对象就创建。
其中lookup是用jndi查找刚才配置的jdbc/test
范例二:
导包和调用和web.xml配置都一致,我就不重复了。
区别在于:把之前的项目中的context.xml的内容复制到tomcat下的conf下的context.xml里,全部覆盖掉。
其他都一样。
范例三:
其他都一样,我就主要说下区别部分:
在tomcat的conf下的catalina下的localhost文件夹内建一个跟项目同名的xml文件。比如我现在的项目名是:Demo_test,那么xml文件名为Demo_test.xml
内容有点改动:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="F:\workspace\Demo_test\WebRoot" path="/Demo_test" reloadable="true">
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource" username="sa" password="ltkj"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://192.168.1.110:1433;databaseName=Think" maxActive="8" maxIdle="4" />
</Context>
注意其中的docBase需要定位到本项目的web根目录。path可以采用相对路径。
范例四:
如果多个项目都用这个配置源的话,你也可以改tomcat的conf下的server.xml文件。(还没尝试)
其他应该都一样。
主要区别:在server.xml下的Engine节点下的Host节点下配置一个context节点。
<Context path="" docBase="www" reloadable="false">
<!-- for mssql -->
<Resource name="jdbc/wizbankds" auth="Container"
type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://localhost:1433/wizbank"
username="sa" password="sasa"/>
内容就是这样了。目测跟第三点一样啊,这个我是从汇思项目中直接copy过来的。
OK,完毕。