您的位置:首页 > 运维架构 > Tomcat

MyEclipse8.5用自带Tomcat6.0通过JTDS驱动配置SQL2000连接池详细分析

2010-08-22 11:09 435 查看
1.MyEclipse8.5项目空间所有在目录为:F:/Workspaces,在该目录下有一个Tomcat, MyEclipse8.5就是用它作服务的,如目录所示: F:/Workspaces/.metadata

2.本人所测试项目保存在:F:/Workspaces/myBlog
步骤一

将驱动包jtds-1.2.jar复制到Genuitec/Common/plugins/com.genuitec.eclipse.easie.tomcat.myeclipse_8.5.0.me201003121946/tomcat/lib目录。
注:该目录为MyEclipse8.5的安装目录。

步骤二

配置数据库连接,在F:/Workspaces/.metadata/.me_tcat/conf/context.xml增加连接,下面中红色语句,文件内容如下所示:
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<!--add by linshouquan for sql2000 connecttion pool, use JTDS driver -->
<Resource name="jdbc/blogdatabase" type="javax.sql.DataSource" password="895278" driverClassName="net.sourceforge.jtds.jdbc.Driver" maxIdle="2" maxWait="5000" username="sa" url="jdbc:jtds:sqlserver://localhost:1433;databaseName=blog;" maxActive="4" />
</Context>

到此已经完成配置。

测试的Servlet如下所示:

package cn.com.jodedu.blog;

import java.io.IOException;
import java.sql.*;
import net.sourceforge.jtds.*;
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
public class BlogServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 解决从JSP页面接受中文参数乱码的问题
request.setCharacterEncoding("UTF-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
String catagoryId = request.getParameter("catagory");
DataSource ds = null;
int result = 0;
String message = "";
/*
// 方法一 //数据源对象可以理解为连接池的管理者,通过它可以获取数据库的连接
try {
Context context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/blogdatabase");
} catch (Exception e) {
System.out.print("获取数据源出错");
}

try {
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//.newInstance()
//Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=DB_Store","sa","895278");
Connection conn = ds.getConnection();

String sqlStr = "insert into blogContent(blotTitle, blogType, blogText) values(?,?,?)";
//?通过预编译方式赋值
PreparedStatement statement = conn.prepareStatement(sqlStr);
statement.setString(1, title);
statement.setInt(2, Integer.parseInt(catagoryId));
statement.setString(3, content);

result = statement.executeUpdate();

message = "getConnection 成功";
} catch (SQLException e) {
e.printStackTrace();
message = "getConnection出错";
}
*/

///*
// 方法二
try { Context context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/blogdatabase");
} catch(Exception e) {
System.out.print("获取数据源出错");
}

try {
String sqlStr = "insert into blogContent(blotTitle, blogType, blogText) values(?,?,?)";
// ?通过预编译方式赋值
Object params[] = {title, catagoryId, content};
QueryRunner qr = new QueryRunner(ds);
result = qr.update(sqlStr,params);
}
catch (SQLException e) {
System.out.print("insert into error");
e.printStackTrace(); }
//*/

if (result == 1) {
message = "添加成功";
} else {
message = "添加失败";
}
request.setAttribute("message", message);
request.getRequestDispatcher("/addBlogesult.jsp").forward(request,response);
}
}
原创文笔,转载请注明出处。作者:林寿全,发表地:广州,时间:2010.08.22 11:25
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: