在Web开发领域,ExtJS 2.0是一个功能强大的JavaScript库,它提供了丰富的组件和丰富的界面设计能力。对于开发者来说,能够将ExtJS与MySQL数据库结合起来,可以大大提高应用的后端处理能力。本文将详细讲解如何掌握ExtJS 2.0,实现与MySQL数据库的连接。
1. ExtJS 2.0 简介
ExtJS是一个开源的JavaScript库,它提供了一套丰富的UI组件和框架,可以用于构建高性能、交互性强的Web应用。ExtJS 2.0是其较为成熟的一个版本,具有以下特点:
- 支持跨浏览器操作,包括IE、Firefox、Safari和Chrome等。
- 提供丰富的UI组件,如按钮、表格、树形菜单等。
- 支持数据绑定,可以方便地与服务器端数据进行交互。
- 支持多种数据存储方式,包括本地存储、XMLHttpRequest等。
2. MySQL数据库简介
MySQL是一种开源的关系型数据库管理系统,具有以下特点:
- 支持多种平台,包括Windows、Linux、macOS等。
- 适用于各种规模的应用,从个人博客到大型企业级应用。
- 支持多种编程语言,如Java、PHP、Python等。
- 性能稳定,安全可靠。
3. ExtJS 2.0 与 MySQL 数据库连接
要将ExtJS 2.0与MySQL数据库连接起来,主要涉及以下几个步骤:
3.1 数据库连接
首先,需要在MySQL服务器上创建一个数据库和相应的表,并确保用户权限允许连接。
CREATE DATABASE test;
USE test;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
);
接下来,在ExtJS项目中,可以通过以下代码连接MySQL数据库:
Ext.onReady(function() {
Ext.data.ConnectionManager.setProvider(new Ext.data.Connection({
type: 'mysql',
host: 'localhost',
database: 'test',
user: 'root',
password: 'password'
}));
});
3.2 查询数据
在ExtJS项目中,可以通过以下代码查询MySQL数据库中的数据:
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: 'http://localhost:8080/query.php'
}),
reader: new Ext.data.JsonReader({
root: 'data',
idProperty: 'id'
}),
fields: ['id', 'username', 'password']
});
store.load();
在PHP脚本中,可以通过以下代码查询MySQL数据库:
<?php
$host = 'localhost';
$dbname = 'test';
$user = 'root';
$pass = 'password';
$conn = new mysqli($host, $user, $pass, $dbname);
$sql = 'SELECT id, username, password FROM users';
$result = $conn->query($sql);
$data = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
echo json_encode(['data' => $data]);
$conn->close();
?>
3.3 数据库操作
除了查询数据,还可以通过ExtJS 2.0进行增删改操作。以下是一个简单的示例:
// 添加数据
var form = new Ext.form.Panel({
title: '添加用户',
width: 300,
bodyPadding: 10,
defaultType: 'textfield',
items: [{
fieldLabel: '用户名',
name: 'username'
}, {
fieldLabel: '密码',
name: 'password'
}],
buttons: [{
text: '添加',
handler: function() {
var values = this.getForm().getValues();
var request = Ext.Ajax.request({
url: 'http://localhost:8080/add.php',
method: 'POST',
params: values
});
request.on('success', function(response) {
console.log('数据添加成功');
});
request.on('failure', function(response) {
console.log('数据添加失败');
});
}
}]
});
// 删除数据
var grid = new Ext.grid.GridPanel({
title: '用户列表',
store: store,
columns: [
{ header: 'ID', width: 50, dataIndex: 'id' },
{ header: '用户名', width: 100, dataIndex: 'username' },
{ header: '密码', width: 100, dataIndex: 'password' }
],
width: 300,
height: 200,
renderTo: Ext.getBody()
});
// 更新数据
grid.on('cellclick', function(view, td, cellIndex, record, row, rowIndex, e) {
var form = new Ext.form.Panel({
title: '修改用户',
width: 300,
bodyPadding: 10,
defaultType: 'textfield',
items: [{
fieldLabel: '用户名',
name: 'username',
value: record.get('username')
}, {
fieldLabel: '密码',
name: 'password',
value: record.get('password')
}],
buttons: [{
text: '修改',
handler: function() {
var values = this.getForm().getValues();
var request = Ext.Ajax.request({
url: 'http://localhost:8080/update.php',
method: 'POST',
params: {
id: record.get('id'),
username: values.username,
password: values.password
}
});
request.on('success', function(response) {
console.log('数据更新成功');
});
request.on('failure', function(response) {
console.log('数据更新失败');
});
}
}]
});
});
在PHP脚本中,可以实现以下功能:
- 添加数据
<?php
$host = 'localhost';
$dbname = 'test';
$user = 'root';
$pass = 'password';
$conn = new mysqli($host, $user, $pass, $dbname);
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
$conn->query($sql);
$conn->close();
?>
- 删除数据
<?php
$host = 'localhost';
$dbname = 'test';
$user = 'root';
$pass = 'password';
$conn = new mysqli($host, $user, $pass, $dbname);
$id = $_POST['id'];
$sql = "DELETE FROM users WHERE id = $id";
$conn->query($sql);
$conn->close();
?>
- 更新数据
<?php
$host = 'localhost';
$dbname = 'test';
$user = 'root';
$pass = 'password';
$conn = new mysqli($host, $user, $pass, $dbname);
$id = $_POST['id'];
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "UPDATE users SET username='$username', password='$password' WHERE id=$id";
$conn->query($sql);
$conn->close();
?>
4. 总结
通过本文的介绍,相信你已经掌握了在ExtJS 2.0中与MySQL数据库连接的方法。在实际项目中,可以根据需求调整和优化代码。此外,还可以利用其他技术,如Redis、Memcached等,提高应用的性能和稳定性。祝你开发顺利!