0

所以我在一个成功连接到 SQL 数据库并从中读取数据的 web 项目中。连接到它的代码如下所示。

//From Here
var connection = new ActiveXObject("ADODB.Connection") ;
var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;
Password=<password>;Provider=SQLOLEDB";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
//To Here

rs.Open("SELECT * FROM table", connection);
rs.MoveFirst
while(!rs.eof)
{
document.write(rs.fields(1));
rs.movenext;
}

rs.close;
connection.close;

简单有效,我让它工作正常。但是前 4 个(从这里标记到这里)运行速度非常慢,每次需要读取或写入 sql 数据库时我都必须重新连接......这对我的项目来说很多。所以每次我运行这段代码(在我在这个项目中创建的所有其他网页上)时,我都必须坐下来等待这段代码运行。

我被告知/需要该项目使用 javascript 和 spring 框架配置设计。显然有 a) 一种保持连接的方法,因此我不必每次点击转到新页面时都运行此代码,或者 b) 连接到 SQL 数据库的不同方法(替换那些 4代码行。这两个都与我使用 Spring 框架有关。

我以前从未使用过 Spring Framework,需要快速学习。一直在看他们的网站教程,但仍然不知道该做什么或如何去做。让我知道是否有任何想法。

请和谢谢。

4

2 回答 2

0

您需要连接池,这意味着不要每次都打开和关闭一个新连接,而是保留您即将关闭的连接,然后看看您是否可以在以后重用它。

不幸的是,我从未在 JavaScript 中看到任何允许您跨页面重用对象的东西,所以在 JavaScript 中没有办法做到这一点。无论如何,从浏览器直接连接到数据库被认为是一种非常糟糕的做法。

通常,您所做的是在两者之间放置一个 java 或 C# 应用程序服务器,并使用连接池让它们访问数据库。然后从您的 javascript 中对应用程序服务器进行 AJAX 调用,该应用程序服务器将使用连接池,并返回例如 JSON 对象。

参见例如http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example

于 2012-07-02T21:48:55.397 回答
0

我认为你在这里搞错了:你不应该从 JavaScript 访问你的数据库,因为任何用户都可以通过这种方式访问​​任何数据,或者删除所有内容。

您应该只访问数据库服务器端。

于 2012-07-02T21:27:20.093 回答