客户应用程序可以通过sqlite提供的CAPI与sqlitelibrary和数据库引擎交互,从而完成相应的数据操作。c/c++编程语言可以直接使用这些nativeCAPIs,对于其它一些编程语言包括Python等脚本语言,可以通过一些第三方封装库来访问sqlite,这些封装库的底层还是通过CAPI来完成相应功能的。所以如果要在自己的app中使用sqlite,非常有必要先了解它提供的CAPIs。
这些CAPIs的作用就是将客户app中的sql语句传递给sqlite数据库引擎,从而完成查询数据,增删改等操作。所以要想学会使用sqlite数据库,就必须要学会写基本的sql语句,了解基本的sql标准语法,这可以找本讲sql语言的书籍简单看看,最快的方式还是在实践中学习。
sqlite的CAPIs包括一定数量的数据结构,接近二百个函数,还有两三百个常量。虽然API的数量比较多,但用起来并不复杂,其中只有一部分函数是经常使用的,还有很多函数的功能相似,如:
对于sqlite3,所有的API函数都有一个前缀:sqlite3_。这个前缀表明这些APIs由sqlite数据库产品提供,3代表版本。所有的常量都有一个前缀:sqlITE_。sqlite数据库的源码是完全开放的,对于提供给客户应用程序调用的APIs,函数名全部由小写字符组成。如sqlite3_create_function_v2就是一个PUBLICAPI,而sqlite3CreateFunc就是一个sqlite内部函数。
sqlITE_API int sqlite3_create_function_v2( ){ ... ... rc = sqlite3CreateFunc(db,zFunc,nArg,enc,p,xFunc,xStep,xFinal,pArg); ... ... }
对于使用sqlite数据库的客户来说,提供一套稳定的API非常重要,否则sqlite每出来一个Release版本,之前的API就焕然一新,那客户应用程序就需要修改自己的APP,付出很大的维护代价。所以sqlite数据库的API,一旦发布就不会删除或者修改,如果某个API确实有必要改进,就会提供一个加了“v2”后缀的新API函数,而保留以前的旧版本,这样客户APP无需修改依然可以正常运行。比如:sqlite3_create_function、sqlite3_create_function_v2。
调用sqliteAPI时,如果成功则会返回sqlITE_OK,如果调用失败将返回一个错误码(Errorcode),指明发生了什么错误。对API调用的返回值进行适当检查,可以提高程序的健壮性。