编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
零空比特数据库代码类生成器 (ZNB DB Code Generator)是一款基于
PHP
零空比特数据库代码类生成器 (ZNB DB Code Generator)功能特色
1) 生成 增删改查等操作。
2) 易于使用。
3) 使用方法:
(一)、对于 SQLite 用户
(1). 所有的字段应该加上 NotNull ,非空。 如下:
(2). 应该加一个自增的主键:
(3).日期时间型的应该加上默认值: (datetime('now', 'localtime'))
(4).UUID全球统一编码默认值应该置为:(hex(randomblob(16)))
(5). 对于使用我们的生成器(ZNB_DB_CodeGenerator)的用户,
(a). 其日期时间型应该在 aardio 里设置成 time.now();
(b). 其 UUID全球统一编码在 aardio 里设置成 win.guid.create();
aardio中的 SQLite 代码使用方法如下:
import win.ui;
import sqlite;
import web.json;
import SQLiteDB;
import SQLiteDB.znb_UserAgents;
...
winform.btnStart.oncommand = function(id,event)
{
var sqlite_conn=sqlite("mySqlite.db");
var znb_UserAgents_Tab=..SQLiteDB.znb_UserAgents.convertAs_znb_UserAgents_Tab({});
/**intellisense(!znb_UserAgents_Tab)
id_UserAgent=id_UserAgent
sUserAgent=sUserAgent
sMemo=sMemo
end intellisense**/
znb_UserAgents_Tab.sUserAgent="曾劲松";
znb_UserAgents_Tab.sMemo="asdfsadf as";
/*
var ok,id,err=..SQLiteDB.znb_UserAgents.insert_znb_UserAgents(
sqlite_conn,znb_UserAgents_Tab);
..console.dump("ok:",ok);
..console.dump("id:",id);
..console.dump("err:",err);
*/
/*
ok: true
id: 8
err: unknown error
完成执行,已无数据
*/
znb_UserAgents_Tab.id_UserAgent=6;
znb_UserAgents_Tab.sUserAgent="www.znb.cc";
//update_znb_UserAgents(sqlite_conn,znb_UserAgents_Tab)=
//更新 znb_UserAgents。返回数据库最近一次运行exec()所改变的行数 iCount, 和错误 sError 。
/*
var iCount,err=..SQLiteDB.znb_UserAgents.update_znb_UserAgents(
sqlite_conn,znb_UserAgents_Tab);
*/
/*
..console.dump("iCount:",iCount);
..console.dump("err:",err);
iCount: 1
err:
*/
var znb_UserAgentsTab=..SQLiteDB.znb_UserAgents.select_where_znb_UserAgents(
sqlite_conn," where [id_UserAgent]=3 ");
..console.dump("znb_UserAgentsTab:",
..web.json.stringify(znb_UserAgentsTab,true));
/*
znb_UserAgentsTab: [
{
"id_UserAgent":3,
"sMemo":"FireFox",
"sUserAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:84.0) Gecko/20
100101 Firefox/84.0"
}
]
*/
var iCount,sError=..SQLiteDB.znb_UserAgents.delete_znb_UserAgents(
sqlite_conn,{6,7,8})
/*
..console.dump("iCount:",iCount);
..console.dump("sError:",sError);
iCount: 3
sError:
*/
sqlite_conn.close();
}
(二)、对于 MySQL 用户
(1). 所有的字段应该加上 NotNull ,非空。并且要输入注释(Comment)。 如下:
(2). 对于 PHP :
a). date_default_timezone_set('PRC'); //设置中华人民共和国标准时间 ;
b). 对于日期时间字段, 调用这个方法: date("Y-m-d H:i:s",time()) ;
c). 对于全球统一编码字段,调用父类的uuid()方法:
PHP中的代码使用方法:
//http://localhost/test/index.php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
date_default_timezone_set('PRC'); //设置中华人民共和国标准时间
//引用数据库文件。
include_once "codeGenerated/ZNB_include_classes.php";
echo "
";
$mysql_server_name = 'localhost:3306'; //改成自己的mysql数据库服务器
$mysql_username = 'root'; //改成自己的mysql数据库用户名
$mysql_password = 'root'; //改成自己的mysql数据库密码
$mysql_database = 'test'; //改成自己的mysql数据库名
$conn = mysqli_connect($mysql_server_name, $mysql_username,
$mysql_password, $mysql_database); //连接数据库
//连接数据库错误提示
if (mysqli_connect_errno($conn)) {
die("连接 MySQL 失败: " . mysqli_connect_error());
}
//数据库编码格式
mysqli_query($conn, "set names utf8");
$ZNBMySQLDBBase=new ZNBMySQLDBBase($conn);
//单值查询。
print_r( $ZNBMySQLDBBase->GetSingleValue("select count(*) from `user`"). '
');
$r=$ZNBMySQLDBBase->GetSingleValue("select `name` from `user` limit 1");
var_dump($r);
//写日志。
$ZNBMySQLDBBase->writeLog("www.znb.cc 。零空比特。");
$znb_user=new znb_user($conn);
//查询一条
var_dump($znb_user->SelectSingle(" where `id`=1")); //正确
//查询多条
var_dump($znb_user->SelectMultiple(" where `id`>=1")); //正确
//echo 'uuid:'.$case->uuid()."
"; //正确。uuid:d54a8437-e4f2-ffb3-0dcc-a2b0ac018138
$znb_user=new znb_user($conn);
$znb_user->id=4;
$znb_user->age=34;
$znb_user->birthDay="20000808";
$znb_user->creationTime= date("Y-m-d H:i:s", time());
$znb_user->name="曾劲松";
$znb_user->password="123'456";
$znb_user->uuid=$znb_user->uuid();
//var_dump($znb_user); //正确。
var_dump($znb_user->Update()); //正确
//var_dump($znb_user->Insert()); //正确
//echo "znb_user->Delete():".$znb_user->Delete(); //正确
return ;
// mysqli_set_charset($conn,"utf8");//设置默认客户端字符集。
// mysqli_select_db($conn,$mysql_database); //更改连接的默认数据库
//查询代码
$sql = "select * from `case`";
print_r("sql:" . $sql);
$mysqli_result = mysqli_query($conn, $sql);
print_r($mysqli_result);
mysqli_connect_error();
//$row = mysqli_fetch_array( $mysqli_result,MYSQLI_ASSOC);
while ($row = mysqli_fetch_array($mysqli_result, MYSQLI_ASSOC)) {
echo $row['caseInfo'] . '
';
}
// 释放结果集
mysqli_free_result($mysqli_result);
//关闭MySQL数据库连接
mysqli_close($conn);
echo 'www.znb.cc' . "
";
echo "
";
?>
aardio中的代码使用方法 :
var mysql_client=mainForm.creatMySQLConnect();
if(mysql_client==null){ return ; }
//新增 ///////////////////////////////////////////////////////////
var znb_user_Tab=..MySQLDB.znb_user.convertAs_znb_user_Tab({});
znb_user_Tab.id=19;
znb_user_Tab.age=30;
znb_user_Tab.birthDay=..time();
znb_user_Tab.name="零空比特曾劲松";
znb_user_Tab.creationTime=..time();
znb_user_Tab.password="wasdf";
znb_user_Tab.uuid=tostring(win.guid.create());
var ok,id,err=..MySQLDB.znb_user.insert_znb_user(
mysql_client,znb_user_Tab);
if(ok!=null)
{
mainForm.appendText("插入 ok:" ++ tostring(ok)
++ " id: " ++ id);
//■ 2020-08-29 17:34:00 插入 ok:true
}
if(err!=null)
{ mainForm.appendText("插入错误:", err); }
//==================================================
//更新//////////////////////////////////////////////
znb_user_Tab.name="零空比特zjs";
znb_user_Tab.birthDay=..time();
znb_user_Tab.creationTime=..time();
var ok,iAffectedRows,err=..MySQLDB.znb_user.update_znb_user(
mysql_client,znb_user_Tab);
if(ok!=null)
{
mainForm.appendText("更新 ok:" ++ tostring(ok));
mainForm.appendText("更新记录数 :" ++ tostring(iAffectedRows));
}
if(err!=null)
{ mainForm.appendText("更新错误:", err); }
//==================================================
//选择////////////////////////////////////////////////
var znb_user_Tabs,result=..MySQLDB.znb_user.select_where_znb_user(
mysql_client," where id>10 ");
mainForm.appendText("选择 id>10:"++ ..table.tostring(znb_user_Tabs));
/*
■ 2020-08-29 20:52:21 选择 id>10:{
[1]={birthDay="2020-08-28";name="zzz";id=11;creationTime="2020-08-28 20:38:41";age=20;uuid="DDD3A6CF-E61C-4F9C-AD05-4AC5B083A69B"};
[2]={birthDay="2020-08-29";name="零空比特zjs";id=12;creationTime="2020-08-29 20:08:13";age=30;uuid="1A6A10DA-7977-4101-BB75-0AF674A3927A"};
[3]={birthDay="2020-08-29";name="zzz";id=13;creationTime="2020-08-29 16:06:03";age=20;uuid="BF438EA1-B067-439A-8A52-70A560BDB614"};
[4]={birthDay="2020-08-29";name="零空比特曾劲松";id=14;creationTime="2020-08-29 17:33:44";age=30;uuid="3E4C2E88-85C6-482A-B651-1AFBA0A79E77"};
[5]={birthDay="2020-08-29";name="零空比特曾劲松";id=15;creationTime="2020-08-29 17:33:47";age=30;uuid="F641709D-A5F6-4221-A523-8A5B15602CDF"};
[6]={birthDay="2020-08-29";name="零空比特曾劲松";id=16;creationTime="2020-08-29 17:34:00";age=30;uuid="1BF32A13-A972-44CA-9F83-A973219A23D2"};
[7]={birthDay="2020-08-29";name="零空比特曾劲松";id=17;creationTime="2020-08-29 19:35:50";age=30;uuid="B209D480-D503-444A-B24F-EEF6D7D4207E"};
[8]={birthDay="2020-08-29";name="零空比特曾劲松";id=18;creationTime="2020-08-29 20:08:10";age=30;uuid="E522436F-5CAA-4A9D-BD7D-05C5CBA5F849"};
[9]={birthDay="2020-08-29";name="零空比特zjs";id=19;creationTime="2020-08-29 20:52:21";age=30;uuid="2459990A-D08A-4697-BBFD-8797BA8D9461"}
}
*/
//===================================================
//根据条数删除 ////////////////////////////////////////
var ok,iAffectedRows,err=..MySQLDB.znb_user.delete_znb_user(mysql_client,{17;18;19});
mainForm.appendText("根据条数删除 iAffectedRows:"++ iAffectedRows);
//■ 2020-08-29 21:22:46 根据条数删除 iAffectedRows:2
//■ 2020-08-29 21:23:25 根据条数删除 iAffectedRows:0
//=====================================================
//删除 where /////////////////////////////////////////
var ok,iAffectedRows,err=..MySQLDB.znb_user.delete_where_znb_user(
mysql_client," where `id`>=15");
mainForm.appendText("根据条件删除 iAffectedRows:"++ iAffectedRows);
//■ 2020-08-30 08:36:59 根据条件删除 iAffectedRows:1
//====================================================
var znb_user_view_Tab=..MySQLDB.znb_user_view.convertAs_znb_user_view_Tab({});
znb_user_view_Tab.id=1;
var znb_user_view_Tabs,result=..MySQLDB.znb_user_view.select_where_znb_user_view(
mysql_client,"");
mainForm.appendText("znb_user_view_Tabs:"++ ..table.tostring(znb_user_view_Tabs));
//■ 2020-08-31 11:35:47 znb_user_view_Tabs:{[1]={id=1;PASSWORD="123456";NAME="zjs"}}
mysql_client.close();
零空比特数据库代码类生成器 (ZNB DB Code Generator)更新日志
√ 20210206 发布1.3 版本,主要功能为 aardio 生成 SQLite 类代码。
√ 20200923 发布1.2 版本,主要功能为 aardio 生成 MySQL 类代码。
√ 20200825 发布1.1 版本,调试错误。
√ 20200815 发布1.0 版本,主要功能为 PHP 生成 MySQL 类代码。
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。