`
jslfl
  • 浏览: 326629 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JS 直接使用MySQL

    博客分类:
  • web
阅读更多
本文来自http://blog.csdn.net/jemlee2002/article/details/4474906

JavaScript DataBase Connector
JSDBC:提供Javascript有效的连接数据库,目前支持MySQL、SQLite、ACCESS,后期会支持更多的数据库;
在从事AJAX开发的工程师肯定会希望有一个通过AJAX直接连接数据库的组件,这样,可以省掉后台很多的操作步骤,比如免去了部署JAVA的运行环境,免去了写很多复杂的JDBC调用,不管出于调试的需要还是应用的需要,JSDBC都能够很好的集成到您的应用当中。


/**
* 类说明:该脚本主要是实现与JSDBC for MySQL 连接,方便用户在js直接使用MySQL
* 创建事件:2009-06-12
*/

//Include OCX Object
document.writeln(" <OBJECT  id='mysql' classid='clsid:9C579403-6745-4695-B14C-96212D319F18'");  
document.writeln(" codebase='JSDBC_MySQL.ocx#Version=1,0,0,000'");  
document.writeln(" WIDTH='0'   HEIGHT='0'>"); 
document.writeln(" </OBJECT>");
//error message
var lasterr = "";
//Exec Falg
var execFlag;

/**
* Connecte to mysql server
* provite:MySQL IP,PORT,DB Name,USER,Password,CharSet
*/
function connectMySQL()
{
execFlag = mysql.connecte("127.0.0.1","3306","testdb","root","123210","GBK");
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Close already open Connection
*/
function closeMySQL()
{
execFlag = mysql.close();
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Exec Insert Into SQL statement
* @param {Object} sql
*/
function insertMySQL(sql)
{
execFlag = mysql.insertData(sql);
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Exec DataBase Manager Language
* @param {Object} sql
*/
function execDMLMySQL(sql)
{
execFlag = mysql.execDML(sql);
if(execFlag == 1)
  return 0;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Exec Select Data From DataBase
* @param {Object} sql
* @param {Object} cnum == Number of fields in SQL statement
*/
function selectMySQL(sql,cnum)
{
var rs = mysql.selectData(sql,cnum);
if(rs.length > 0)
{
  var array = new Array();
  var DataSet = new Array();
  var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的,使用时拷贝过去即可
  var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的,使用时拷贝过去即可
 
  array = rs.split(rowsplit);
  for(var i = 0;i < array.length; i++)
  {
   var DataRow = array[i].split(fieldsplit);
   DataSet[i] = DataRow;
  }
  return DataSet;
}
else
{
  lasterr = mysql.getLastError();
  return null;
}
}
/**
* Exec Delete SQL statement
* @param {Object} sql
*/
function deleteMySQL(sql)
{
execFlag = mysql.deleteData(sql);
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Exec Update SQL statement
* @param {Object} sql
*/
function updateMySQL(sql)
{
execFlag = mysql.updateData(sql);
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}
/**
* Exec Call Produce
* @param {Object} proname == Produce Name
* @param {Object} inparas == Produce IN Parameters
* @param {Object} outparas == Produce OUT Parameters
* @param {Object} cnum == Number of fields in OUT Parameters
*/
function callProduceMySQL(proname,inparas,outparas,cnum)
{
var rs = mysql.execProduce(proname,inparas,outparas,cnum);
if(rs.length == 0)
{
  lasterr = mysql.getLastError();
  return null;
}
else
{
  var array = new Array();
  var DataSet = new Array();
 
  var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的
  var fieldsplit ='';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的
 

  array = rs.split(rowsplit);
  var DataRow = new Array();
  for(var i = 0;i < array.length; i++)
  {
   var fieldarray = array[i].split(fieldsplit);
   DataSet[i] = fieldarray;
  }
  return DataSet;
}
}

/**
* Exec Transcation
* @param {Object} sql
*/
function execTranscationMySQL(sql)
{
execFlag = mysql.execTranscation(sql);
if(execFlag == 1)
  return 1;
else
{
  lasterr = mysql.getLastError();
  return 0;
}
}

/**
* Get Last Error Message if exec error from js
*/
function getLastErrorMySQL()
{
return lasterr;
}
/**
* Get Last Error Message if exec error from ocx
*/
function getLastErrorFromMySQL()
{
var lasterrmysql = mysql.getLastError();
return lasterrmysql;
}



Javascript访问Access很容易实现,但JS访问MYSQL却没有找到很简单的方法。今天在浏览MYSQL网站时,发现MYSQL有ODBC连接,突然想到JS是可以通过ActiveX访问ODBC数据库的,经过测试发现JS连接MYSQL如此简单!
1、下载MYSQL的ODBC连接http://www.mysql.com/downloads/connector/odbc/;
2、在JS中建立ODBC连接如下:
var con = new ActiveXObject("ADODB.Connection");
con.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};OPTION=3;SERVER=127.0.0.1;User ID=root;Password=123456;Database=mysql;Port=3306";
//服务器地址,数据库 账号密码,数据库名,端口
con.open;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open("select * from user", con);
while (!rs.eof) {
var u = rs.Fields("User");//这里的User是user表中的一个字段
document.write(u);
rs.moveNext;
}
rs.close();
rs = null;
con.close();
con = null;
需要注意连接字符串中Driver的名称与安装后的ODBC中的Drivers页中的MYSQL名称一致即可!
在用javacript访问数据时,若提示 “此计算机上的安全设置禁止访问其它域的数据源。”
则要设置IE
Internet选项--安全--自定义级别
(Internet)--通过域访问数据资源,改为“启用”
分享到:
评论

相关推荐

    javaScript连接mysql数据库ODBC连接包

    神奇的能让js直接操作数据库,js前端设计师的福音

    showdoc-mysql版本

    "直接下载修改本地数据库使用"这句话表明该压缩包包含了一个可以部署到本地的软件,用户可以直接下载,然后根据自己的需求对配置文件进行修改,以便连接到自己的MySQL数据库实例。 在深入探讨之前,我们先了解一下...

    js客户端通过node.js实现的Server操作MySQl

    本项目“js客户端通过node.js实现的Server操作MySQL”旨在展示如何不依赖像Express这样的框架,直接使用Node.js的核心功能来构建一个简单的服务器,并与MySQL数据库进行交互。以下将详细介绍这一过程中的关键知识点...

    mysqls一款专为node.js生成sql语句的插件链式调用使用灵活

    MySQLs是一款专为Node.js设计的SQL语句生成器,其特点是通过链式调用的方式提供了灵活的操作体验。在Node.js的开发环境中,与数据库交互是必不可少的一部分,而MySQLs插件则为开发者提供了一个高效且易用的工具,...

    一个纯nodejs JavaScript客户端实现MySQL协议.zip

    使用JavaScript编写MySQL客户端,意味着开发者可以直接在Node.js环境中使用熟悉的语法进行数据库操作。这包括创建连接、执行SQL语句、处理结果集等。此外,JavaScript的动态类型特性使得代码更易读写,但同时也需要...

    基于vue全家桶+node.js+express+mysql实现的商城网站

    连接Mysql代码在server/conf/conf.js配置信息改为自己的。表创建在server/malldata.sql文件内直接复制插入。数据库名是malldata,不懂用数据库去百度很容易 cd vueMall npm install express: cd server npm install...

    mysql navicat premium,最新版本,支持mysql5.7 json格式数据,解压即可直接使用

    例如,你可以通过Navicat的查询编辑器使用这些JSON函数进行复杂查询,或者在设计视图中直接编辑JSON字段。同时,Navicat的可视化工具,如数据表视图和图表,也能帮助用户以直观的方式查看和分析JSON数据。 除此之外...

    electron.js数据库应用---导航菜单(element-ui+mysql)

    标题中的“electron.js数据库应用---导航菜单(element-ui+mysql)”是一个关于使用Electron.js框架构建一个集成Element-UI和MySQL数据库的桌面应用的项目。在这个项目中,开发者将学习如何结合现代前端技术与本地...

    Android 直接连接MySQL

    然而,Android系统并不直接支持MySQL数据库,因为MySQL主要用于服务器端,而Android设备通常使用SQLite作为本地数据库。但是,通过一些技术和库,我们可以实现Android与MySQL的通信。 首先,理解Android与MySQL的...

    一个简单学习NodeJs中使用MySQL的例子.zip

    在Node.js环境中,MySQL是一个非常常用的数据库管理工具,它允许开发者使用JavaScript来操作数据库,使得Web应用程序的开发变得更加便捷。本教程将通过一个简单的例子,介绍如何在Node.js中使用MySQL进行数据操作。 ...

    php+mysql+js拖拽div实例

    **PHP + MySQL + JS 拖拽Div实例详解** 在Web开发中,用户交互性是提升用户体验的关键因素之一。拖拽功能(Drag and Drop)可以让用户通过鼠标直接操作页面元素,增强了网页的互动性。本实例将介绍如何使用PHP、...

    使用python语言Django网络框架编写的跳蚤市场项目,可做毕业设计,内涵mysql数据库文件可直接导入mysql数据库

    项目可能使用HTML、CSS和JavaScript,或者使用如Bootstrap这样的前端框架来提升用户体验。 12. **部署与运维**: 项目完成后,需要将其部署到服务器上,可能涉及Nginx、Gunicorn或uWSGI等工具。同时,还需要考虑性能...

    利用JDBC读取mysql数据展示在listview

    在这里,我们利用了PDF.js,这是一个流行的JavaScript库,可以在浏览器中查看PDF文件。我们将PDF链接传递给WebView,并加载一个内嵌的PDF.js页面,通过URL参数传递文件链接。 总结来说,本教程涵盖了如何使用JDBC与...

    mysql实战练手项目, 后端node.js+mysql开发

    2. **Node.js**: Node.js是一个基于Chrome V8引擎的JavaScript运行环境,允许开发者使用JavaScript编写服务器端代码。Node.js具有非阻塞I/O模型和事件驱动的特性,使得它在构建高性能网络应用时表现出色。 3. **...

    MySql5.7.38版本

    MySQL 5.7.38 是 MySQL 数据库管理系统的一个重要版本,它在先前的版本基础...在 Unity 开发中,通过 MySql.Data.dll,开发者可以直接在游戏项目中集成 MySQL 数据库,实现动态数据存储和读取,提升游戏体验和可玩性。

    查询mysql错误信息、及js错误信息

    1. **命令行界面**:在MySQL客户端,执行错误的SQL语句后,会直接在命令行显示错误信息。 2. **编程语言接口**:通过编程语言(如Python、Java、PHP等)连接MySQL时,执行查询操作时,错误信息会通过异常处理机制...

    基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip

    基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城...

    MD5算法源码_JS_Java_Oracle_MySQL

    在JS(JavaScript)中,实现MD5算法可以使用一些开源库,如CryptoJS。CryptoJS提供了一个完整的MD5实现,允许开发者对字符串或其他类型的数据进行MD5哈希计算。以下是一个简单的JS MD5示例: ```javascript var ...

    mysql教程ssh配置

    - `CVS命令详解`: JavaScript与CVS(逗号分隔值)文件操作不直接相关,但在Web开发中,可能需要处理CSV数据,可以使用JavaScript库如Papa Parse。 - `JS正则`: JavaScript提供了正则表达式支持,用于字符串的模式...

Global site tag (gtag.js) - Google Analytics