当前位置: 首页 > news >正文

大学 两学一做专题网站关键词优化推广公司排名

大学 两学一做专题网站,关键词优化推广公司排名,长沙网站制作平台,做网站的费用计入销售费用吗一直不知道有ORM这种东西#xff0c;直到和 海坡 交流后才接触。在项目中#xff0c;需要将数据存储到数据库中#xff0c;首先想到的是生成各种raw SQL的解决方法。但随着项目的进展#xff0c;发现它很不灵活。譬如可能因为有新的需求#xff0c;在数据库student表中添加…一直不知道有ORM这种东西直到和 海坡 交流后才接触。在项目中需要将数据存储到数据库中首先想到的是生成各种raw SQL的解决方法。但随着项目的进展发现它很不灵活。譬如可能因为有新的需求在数据库student表中添加dept_no字段那在各种raw SQ中就需要进行修改了工程浩大。如果操作(插入\修改\删除)数据库表中的数据和操作数据对象一样可以简化很多的操作便于数据层的变更而不必修改逻辑层代码。//项目随手摘录的一个构造插入指定对象数据的INSERT语句的方法。int gtd_genInsertSql(struct task_t toinsert,char *sql, int nUserID){int curr 0;//task_id | user_id | strtextcurr sprintf(sql,insert into task values(%d,%d,%s,,toinsert.id,nUserID/*user_id*/,toinsert.strtext);//ctimechar buffer[32];::memset(buffer,0,sizeof(buffer));strftime(buffer,32,2012-%m-%d %H-%M-%S,,(toinsert.ctime));strncpy(sqlcurr,buffer,strlen(buffer));curr strlen(buffer);......*(sql curr) );curr;return curr;}ORM即对象关系映射ORM的设计就是数据库持久层的设计。目前流行有一些成熟的ORM框架对应各种语言都有。因为项目实际需要挑选了一个轻便的框架Simple MySQL ORM for C。google了下只发现有Simple MySQL ORM for C作者的一篇英文博文介绍而已http://ales.jikos.cz/smorm/。「打米量家底」因为那篇文章不太长所以把它翻译过来了。记得年前 独酌逸醉 有提到过他有翻译StackOverFlow上的精华帖。现在看来譬如对C熟悉完全可以去看看外国的程序员社区。一方面你本身是程序员专业对口认得大多数单词另一方面国外高手也多不为是提高技术的好机会最后它确实提高英语的好方法赞一个。下面是《Simple MySQL ORM for 》的译文原文链接http://ales.jikos.cz/smorm/【译】Simple MySQL ORM for C作者alesakc版本Simple MySQL ORM是用python的脚本完成的它可以用来连接已经创建的MySQL数据库读取数据库表所对应的数据结构当然也可以通过此数据结构和方法创建表。这些可以让开发者使用c语言很方便的更新/修改/删除数据库中的数据。之前笔者需要在强大的数据库里面存储检索结构化数据。笔者更倾向于使用MySQL和c语言。但笔者对自己写的粗糙代码和互联网上找到的巨费资源的解决方案已经很厌烦了所以干脆自己写了一个。很简单很天真下笔粗糙(python不是笔者的母语抱歉了)。但相信情人眼里出西施笔者想象着让它更有用一点。还有关于它的文档。。。考虑到这只是一个技术文章而不是一个使用手册。笔者最后取消了此文章提到的项目所以它有待考验。不支持MySQL里头的一些数据类型。这个项目的起因之一是笔者不喜欢MySQL提供的c api所以代之以“更时髦”的万事俱备的api~但笔者发现它有些地方还不够好因为笔者还没完成。让我们开始吧。首先你必须创建你的数据库表。笔者更喜欢一下这种方式因为只有这样才能更充分使用数据库。CREATE DATABASE ex1;CREATE TABLE ex_customer (id int NOT NULL auto_increment,name char(32),PRIMARY KEY (id));CREATE TABLE ex_item (customer_id int,itemname char(32));接下来我们创建一个简单的python脚本db.pydbname ex1name dbtables { }在接下来让它执行吧 :Ppython rdb.py当然比起真正的rock少点听觉享受。可能你会问笔者到底要怎么连接到数据库啊当然那些只是默认用户写的……但看看我们得到的结果。我们可以已经有两个文件产生了分别是db.h和db.c。前者包含是象征数据库表的数据结构声明和操作这些数据结构的方法后者包含了方法的定义接着的是数据初始化的语句。我们来看看typedef struct db_ex_customer {int id;char * name;} db_ex_customer;typedef struct db_ex_item {int customer_id;char * itemname;} db_ex_item;相信没有进一步解释这些东西的必要。让我们使用它们吧笔者新建了ex1.c文件。注意为了更容易读懂代码笔者没有处理错误的返回值#include #include #include #include int main (int argc, char **argv){int ret;MYSQL global_mysql;MYSQL *m;db_ex_customer *cust1;db_ex_item *item1, *item2;mysql_init ( global_mysql);/** connect to MySQL as usual*/m mysql_real_connect ( global_mysql, localhost, root, , ex1, 3036, NULL, 0);/** pass the MySQL connection to function, that initializes the ORM*/ret db_init ( global_mysql);/** the *__new method creates empty structure*/cust1 db_ex_customer__new ();/** setting the structure attribute with allocated string,* it will be freed during call of *__free method*/cust1-name strdup (alesak);/** this method inserts the structure into according table.* If it has serial field, its value is reflected into structure*/ret db_ex_customer__insert (cust1);item1 db_ex_item__new ();/** lets use the serial value from newly inserted customer*/item1-customer_id cust1-id;item1-itemname strdup (simple orm);ret db_ex_item__insert (item1);item2 db_ex_item__new ();item2-customer_id cust1-id;item2-itemname strdup (advanced orm);ret db_ex_item__insert (item2);db_ex_customer__free (cust1);db_ex_item__free (item1);db_ex_item__free (item2);return (0);}编译下cc -I mysql_config --cflags ex1.c db.c mysql_config --libs -o ex1运行可执行文件发现它没错。这意味着它已经一些数据已被存储。至少如果你让评价它笔者会说很优雅。接下来怎么去检索这些数据假设我们已经知道数据库表中记录的键值笔者又新建了ex2.c文件。#define _XOPEN_SOURCE 500#include #include #include #include int main (int argc, char **argv){int ret;MYSQL global_mysql;MYSQL *m;db_ex_customer *cust1;db_ex_item *item1, *item2;mysql_init ( global_mysql);m mysql_real_connect ( global_mysql, localhost, root, , ex1, 3036, NULL, 0);ret db_init ( global_mysql);cust1 db_ex_customer__get_by_id (3);if (cust1) {fprintf (stdout, I have customer named \%s\\n, cust1-name);db_ex_customer__free (cust1);}return (0);}跟前边一样编译然后执行cc -I. mysql_config --cflags ex2.c db.c mysql_config --libs -o ex2./ex2最后笔者不想让ORM自动创建相关数据的查询因为笔者相信它能做的好。(老实说如果使用默认的MyISAM,它不可能判断相关数据)。当然接下来笔者想要新建笔者自己的、超复杂的ex_items表与ex_customer标连接后的SELECT检索。编辑一下db.pydbname ex1name dbtables {ex_item :[(get, get_customer_items,[(INTEGER, customer_id)], SELECT ex_item.* FROM ex_item WHERE customer_id ?)]}重新执行db.puy脚本会添加新的db_ex_item__get_customer_items_*方法集。这些方法灵活之处在于可以增加INTEGER类型的参数在特定的SQL上打开游标从游标读取一行记录关闭游标。我们扩展ex2.c#define _XOPEN_SOURCE 500#include #include #include #include int main (int argc, char **argv){int ret;MYSQL global_mysql;MYSQL *m;db_ex_customer *cust1;db_ex_item *item1, *item2;mysql_init ( global_mysql);m mysql_real_connect ( global_mysql, localhost, root, , ex1, 3036, NULL, 0);ret db_init ( global_mysql);cust1 db_ex_customer__get_by_id (3);if (cust1) {fprintf (stdout, I have customer named \%s\..\n, cust1-name);db_ex_item__get_customer_items_open (cust1-id);while ((item1 db_ex_item__get_customer_items_fetch ()) ! NULL) {fprintf (stdout, .. and found his item named \%s\\n, item1-itemname);db_ex_item__free (item1);}db_ex_item__get_customer_items_close ();db_ex_customer__free (cust1);}return (0);}得偿所愿它打印的结果I have customer named alesak.... and found his item named simple orm.. and found his item named advanced orm以上朋友们这里是http://ales.jikos.cz/smorm/rdb.py 脚本。更确切的说别下载这个破烂东西。但如果你喜欢这个点子请告诉笔者alesak#gmail.com。全文完。感谢作者 alesak。Simple MySQL ORM for C我没有亲手测试找时间补上测试篇。另笔者水平有限欢迎扶正拍砖。以上。捣乱 2013-3-22
http://www.zqtcl.cn/news/943652/

相关文章:

  • 前端怎么做网站万网域名管理入口
  • asp.net 做网站实例特别酷炫网站
  • 个人网站的内容网页设计图片显示不出来怎么弄
  • 福建省建设人才与科技发展中心网站首页关于制作网站收费标准
  • 什么软件可以发帖子做推广中山优化网站
  • 中山网站建设开发网络营销的基本功能
  • 温州平阳县网站建设兼职免费下载简历模板
  • 导购网站 转化率wordpress 拓展
  • 美文分享网站源码互联网网站建设
  • 做网站用php还是python建设网站价格
  • 平台网站怎么做诱导网站怎么做
  • 网站建设人员构成网址申请域名
  • 微网站建设找哪家公司好郑州一凡网站建设
  • 江阴网站制作公司泉州网站建设论坛
  • 最新章节 62.一起来做网站吧时钟插件+wordpress
  • 惠州市建设规划局网站网页设计实训报告word
  • 大众汽车网站建设鳌江网站建设
  • 佛山外贸网站建设公司网站与网页区别
  • HTML网站建设课程微商怎么做网站
  • 专业数据分析网站wordpress 很差
  • 请人做个网站多少钱google推广妙招
  • 郑州销售网站开一个设计公司
  • 建筑公司网站常用长尾词网页设计实训总结100字
  • 网站开发项目业务要求wordpress前台注册登陆
  • 上海人才网官网招聘人力资源专业wordpress seo title
  • 简单html网站网页设计培训学费多少
  • 麻城网站建设投标网招标网
  • 网站建设行业细分专业动漫如何制作
  • 做地方网站数据哪里来模板网站建设教程视频
  • 株洲建设网站制作网络怎么推广自己的产品