python使用MySQLdb的小问题

这些天使用python连接Mysql数据库,遇到了在insert和update时,没有返回错误代码,即已经insert或者update成功,但是表单数据没有更新变化的问题。
因为之前已经使用过,能够正常更新,一直很困惑。
在网上找了一些资料后发现,原来在insert和update后,需要commit操作。
那为什么之前不需要呢?
我查看了之前的表单,之前的表单使用的是MyIsam存储引擎,而这个新表单使用的是InnoDB引擎,需要增加commit操作。

那为什么需要增加commit操作呢?

InnoDB是事务性引擎,有个autocommit的变量控制是否自动提交事务。Inn[……]

Read more

观察者模式中的回调函数注册和非静态函数注册

相关文章:C++中的观察者模式

1.关于回调函数传输的传递

在上文(C++中的观察者模式)中,采用了常用的void函数和空参数。

我们可以通过修改typedef void?? (*EventHandler)(void);中的参数列表,如改成typedef void?? (*EventHandler)(double,double,double);

这样就可以传递三个参数。

调用的时候按照如下的方法调用:
EventHandler notifyEvent = AllEvent.GetEvent()[i];

(*notifyEvent)(tmpdouble1[......]

Read more

JsonParser–使用python编写的json解析器

最近在练习python,于是尝试使用python编写json解析器,目前已经大体实现,通过了jsonTestFile.txt中的测试例子。代码github网址为:https://github.com/siukwan/jsonparser

下面重点介绍编写过程中遇到的一些需要注意的问题。

1.json的主体内容

我这里所提及的json主体内容主要是指两大类:1.对象object;2.数组array。

因为一个json格式的字符串不是一个object就是一个array。所以编写jsonparser的类中,有_parse_object和_parse_array两个函数。首先通过par[……]

Read more

#1288 : Font Size

1.通过分析这道题目的规模,采用朴素方法的时间复杂度为O(n^2),即10^6,理论上可以通过,于是先采用朴素方法进行求解。

描述

Steven loves reading book on his phone. The book he reads now consists of N paragraphs and the i-th paragraph contains ai characters.

Steven wants to make the characters easier to read, so he decides to increase the font size o[……]

Read more

placement new

pi = new (ptr) int; //placement new

括号里的参数ptr是一个指针,它指向一个内存缓冲器,placement new将在这个缓冲器上分配一个对象。Placement new的返回值是这个被构造对象的地址(比如括号中的传递参数)。placement new主要适用于:在对时间要求非常高的应用程序中,因为这些程序分配的时间是确定的;长时间运行而不被打断的程序;以及执行一个垃圾收集器 (garbage collector)。

简单来说,placement new是创建对象(即调用对象的构造函数),但是不分配内存,使用了现有的内存。

delete与delete[]的区别

1.如果对象是无析构函数,或者类型是基本的数据类型,new出来的一个数组,使用delete p和delete[]p没有区别。

2.如果new出来的对象具有析构哈书,使用delete p只会调用p[0]的析构函数,而其余的均不会调用,可能会造成内存泄漏。