SQLite
Posted ruanchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite相关的知识,希望对你有一定的参考价值。
python接口开发:
import sqlite3 def createTable(conn): sql_create = ‘‘‘ CREATE TABLE IF NOT EXISTS employees ( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, salary REAL )‘‘‘ try: conn.execute(sql_create) return 0 except: return 1 def insert(conn, id, name, salary): sql_insert = ‘‘‘ INSERT INTO employees(id, name, salary) SELECT ?, ?, ? WHERE NOT EXISTS(SELECT * FROM employees WHERE id=?) ‘‘‘ try: conn.execute(sql_insert, (id, name, salary, id)) print "insert a line of data successfully" return 0 except: print "insert a line of data failed ! id = ", id return 1 def select(conn, id): sql_select = ‘‘‘ SELECT id, name, salary FROM employees WHERE id = ? ‘‘‘ cursor = conn.execute(sql_select, (id,)) print "select a line of data successfully" return cursor def delete(conn, id, name, salary): sql_insert = ‘‘‘ DELETE FROM employees ‘‘‘ try: conn.execute(sql_insert) print "delete data successfully" except: print "delete data failed ! " # open or create database conn = sqlite3.connect("employee.db") print "Open database successfully" if(0==createTable(conn)): print "createTabe successfully" else: print "createTabe failed" conn.close() exit(-1) delete(conn, 1, "rc", 4.0) cursor = select(conn, 1) print list(cursor) cursor = select(conn, 2) print list(cursor) insert(conn, 1, "rc", 4.0) insert(conn, 2, "mario", 0.0) insert(conn, 2, "mario-mario", 0.0) cursor = select(conn, 2) print list(cursor) print list(conn.execute("SELECT * FROM employees")) # must commit, then the data will be written to database conn.commit() print "commit successfully" conn.close() print "close database successfully"
C接口开发:
官方sqlite3库下载地址:https://www.sqlite.org/download.html
四个基础API:
int sqlite3_open( const char *filename, /* Database filename */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); /* 打开/创建数据库文件的API,第一个参数是文件路径及名字,第二个参数是sqlite3操作句柄。如果数据库文件不存在就创建一个,并且会返回一个数据库操作句柄,保存到第二个参数中。操作成功,返回值为SQLITE_OK. */ int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); /* 执行sql语句。第一个参数,打开的数据库操作句柄。第二个参数,sql语句,就是我们要执行的命令。第三个参数,回调函数。第四个参数,传入回调函数的参数。第五个参数,保存操作失败时的错误信息。操作成功,返回值为SQLITE_OK. */ void sqlite3_free(void *); /* 释放申请的动态内存了,在上一个API操作中,假设出现操作失败,错误信息保存在最后一个参数中,它的内存是动态申请的,这时候就要通过这个函数释放内存了。 */ int sqlite3_close(sqlite3 *); /* 关闭数据库。第一个参数就是sqlite3操作句柄。一般在结束或出错时调用,用来关闭数据库。 */
以上是关于SQLite的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段
SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML
当我从用户获取数据并将其保存到 SQLite 数据库中时,我应该怎么做才能使列表视图在片段中工作
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段