查询 MySQL 数据库客户端

Posted

技术标签:

【中文标题】查询 MySQL 数据库客户端【英文标题】:Query MySQL Database Client Side 【发布时间】:2011-11-30 09:15:24 【问题描述】:

我正在尝试验证用户名在注册表单上的唯一性,并希望在客户端键入用户名后立即验证用户名的唯一性,而不是在提交表单后执行此服务器端。

我是否应该从数据库中收集一个结果集,将其存储在一个数组中,然后以 bean 的形式将其传递给 jsp 页面(我使用的是模型 2 设计,因此用户在到达之前通过一个 servlet jsp页面)?如果数组很大怎么办?如何将这些数据带入 javascript

或者,有没有办法在客户端使用 ajax 和 javascript 进行查询?也许有可能以某种方式在后台运行查询?

我真的只是在寻找一些方向,因为我什至不知道从什么开始研究这样的东西。在性能方面,这甚至是明智之举吗?

【问题讨论】:

为什么这个查询会返回一个大的结果集?你要么得到一行一列,即如果用户名已经存在,或者没有行。 大部分来自于从数据库中收集所有用户名并填充一个数组列表,然后在用户实际提交表单之前将其发送到 jsp 页面。这只是我大声思考这是否是正确的方法的方式。 啊。我不熟悉 JSP,但你的意思是所有的用户名都会发送给客户端吗?那将是一个糟糕的安全选择。无论如何,除非您出于缓存原因这样做,否则没有理由从数据库中加载每个用户名来检查是否被占用。 【参考方案1】:

我会为此使用“AJAX”。

这是一种方法:在表单的用户名文本字段上设置一个 blur() 处理程序。当调用 blur() 方法时,您将用户名发布到后端代码;它验证它并返回一些适当的响应。然后,您解析响应并更改用户名文本字段上的 CSS 类(例如,将其变为红色)- 或执行任何其他您想要在视觉上指示“正在使用的用户名”的操作。

无论哪种方式,您都必须将用户名从客户端获取到服务器以进行验证;你不会想要任何允许客户端直接使用数据库的机制(想想安全/漏洞/等)。

如果您还不熟悉,请查看 jQuery (http://jquery.com/),让您的客户端生活更轻松。

【讨论】:

如何将用户名发布到后端代码?我是否必须真正离开当前页面,或者所有这些都可以在后台不通知用户的情况下完成?

以上是关于查询 MySQL 数据库客户端的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询优化

利用mysql客户端查询UCSC数据库

MySQL查询结果中显示数据类型?

使用MySQL客户端登录Ensemble数据库查询相关信息

mysql查询乱码解决方法

将 mysql 查询结果推送到客户端 GWT