孜孜不倦的程序员:SQLite 内幕
2010-09-08 00:00:00 来源:WEB开发网非常类似于底层开发
此 API 最引人注目的一点就是它有点类似于底层开发。 如果您像我一样也是一名 C++ 老程序员,这可能是一件好事。这让我们追忆起过去的美好时光,那时男人都是顶天立地的汉子,内存都是手动管理的,而女人们则一边品尝着鸡尾酒,一边聆听我们在 Windows 95 原野上驾驭难以驯服的指针这样令人胆颤心惊的故事… 但对于其余那些自以为是的 C# 年轻程序员,这些新手实际上只希望高效地完成任务,可以说与他们完全不在一个层次上。 真正需要的是该 API 的出色抽象包装,这使得它更易于管理并可以减少使用时所需的代码行数。
将它包装在单个类中并不太难,因为 System.Data 提供了一些很好的类,可处理大多数用户 API 交互。 名为 SQLite 的该包装类的完整详细信息有点过长,将不在文本中提供,但图 3 中显示的声明十分清晰地说明了应如何使用该类。
图 3 SQLite 包装类的声明
public class SQLite : IDisposable
{
private IntPtr _db; //pointer to SQLite database
private bool _open; //whether or not the database is open
/// <summary>
/// Opens or creates SQLite database with the specified path
/// </summary>
/// <param name="path">Path to SQLite database</param>
public void OpenDatabase(string path);
/// <summary>
/// Closes the SQLite database
/// </summary>
public void CloseDatabase();
/// <summary>
/// Executes a query that returns no results
/// </summary>
/// <param name="query">SQL query to execute</param>
public void ExecuteNonQuery(string query);
/// <summary>
/// Executes a query and stores the results in
/// a DataTable
/// </summary>
/// <param name="query">SQL query to execute</param>
/// <returns>DataTable of results</returns>
public DataTable ExecuteQuery(string query);
}
赞助商链接