配置应用服务器数据库连接池和配置spring jdbc连接池还是有区别的。tomcat连接池因为配置tomcat下面的,所有最好用jsp或者maven(模拟窗口测试方法)来测试,但是跟我们的测试带了很多的不变啊,若能在普通java application或者junit方法测试就不容易,也不知道杂写,若高手知道请指教
而Spring连接池与HTTP协议无关,可直接通过java application或junit直接使用,大大地方便了测试和使用。
start:
既然要使用tomcat 6 连接池,那肯定和以前的tomcat 5.5有区别是吧。 这里我比较下几个方式,并且使用一种比较方便的方式记录tomcat6连接池配置方式。
1: 保证tomcat-lib有sql驱动包。
2: 在项目中建立一个META-INF文件夹。在webContent下建立。这个文件夹做什么用的呢? 这个文件夹里面的XML文件是会被tomcat在启动这个应用时加载的。也就是在其下面建立一个数据库连接池的context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/sqlserver"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=****"
username="******"
password="******"
maxActive="100"
maxIdle="30"
maxWait="10000"/>
</Context>
3:
import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class CompetitorController {
@Autowired
private DataSource ds;
@RequestMapping(value = "/competitors")
public String fetchCompetitors(HttpServletRequest request)
{
if(ds!=null)
{
try {
Connection conn = ds.getConnection();
System.err.println(conn.isClosed());
} catch (SQLException e) {
e.printStackTrace();
}
}
return "";
}
public DataSource getDs() {
return ds;
}
public void setDs(DataSource ds) {
this.ds = ds;
}
}
在tomcat 5.5配置中其中的context.xml文件写法不一样。
引用:
http://hi.baidu.com/%CB%BC%C3%F4%D3%EA/blog/item/ae5e5009d9209fdb63d98662.html