之前操作数据库都是直接使用命令操作(因为做的都是小东西,并发量不会很大),但是如果做实际应用的东西就必须考虑使用连接池实现对数据库的操作,因为数据库的连接和释放都会耗费很大的资源,连接池的原理就是连接池初始时会生成一些连接,当客户端请求连接时会从连接池中直接分配,如果不够则会生成新的连接(但是最大活跃数,最大空闲数,最大等待时间都可以在配置文件中自定义)。使用完则会收回连接池而不会真正的释放(当然也要根据配置文件的最大空闲数的参数)。
最近研究了如何使用连接池连接Mysql数据库(其余类似):
1:首先在项目的WebContent/META-INF目录下创建context.xml文件,文件中配置连接池信息:
然后再项目的web.xml中配置入口信息:
之前在网上查的资料是在tomcat服务器的目录apache-tomcat-8.0.24\conf下的context.xml和server.xml中进行配置;但是配置之后项目无法找到,失败。(按理来说这应该是全局配置但是不可以,不知道为什么)。
进而进行测试:
<%
Connection conn=null;
DataSource ds=null;
ResultSet set=null;
Statement stmt=null;
InitialContext ctx = new InitialContext();
ds=(DataSource)ctx.lookup("<span style="color:#3333ff;">java:comp/env/</span><span style="color:#ff0000;">jdbc/mysql</span>");
if(ds!=null)
{
out.println("已经获取了DataSource");
conn=ds.getConnection();
stmt=conn.createStatement();
String ip="123.1.2.3";
int port=50;
String sql="select * from ip_port where ip='"+ip+"'";
set=stmt.executeQuery(sql);
while(set.next())
{
out.println(set.getString("ip"));
}
}
else out.println("获取dataSource失败");
%>
蓝色部分为固定写法,红色部分是web.xml中<res-ref-name>中设置的。
在使用之前需要在项目中包含如下的jar包:
下载包的连接:http://download.csdn.net/detail/u014594922/9671368
使用中可能会遇到mysql-connector-javaxxx.jar的版本太低的问题,升级换一个新的版本即可。