JSP连接SQLite数据库详解

JSP连接SQLite数据库详解
JSP连接SQLite数据库详解

下载SQLite数据库的JDBC

这里给出一个中文站点的URL:

https://www.360docs.net/doc/6d2876739.html,/Upfiles/source/sqlitejdbc-v033-nested.tgz

将下载到的包解压后得到jar包sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,

并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\sqlit ejdbc-v033-nested.jar

在你的代码中引用这个驱动:

Class.forName("org.sqlite.JDBC");

Connection conn = DriverManager.getConnection("jdbc:sqlite:filename");//filename为你的SQLite数据名称

// ... use the database ...

conn.close();

示例程序如下:

Connection conn =

DriverManager.getConnection("jdbc:sqlite:zieckey.db");

Statement stat = conn.createStatement();

stat.executeUpdate("create table tbl1(name varchar(20), salary int);");//创建一个表,两列

stat.executeUpdate("insert into tbl1 values('ZhangSan',8000);"); //插入数据

stat.executeUpdate("insert into tbl1 values('LiSi',7800);");

stat.executeUpdate("insert into tbl1 values('WangWu',5800);");

stat.executeUpdate("insert into tbl1 values('ZhaoLiu',9100);");

ResultSet rs = stat.executeQuery("select * from tbl1;");//查询数据

while(rs.next()){//将查询到的数据打印出来

System.out.print("name = "+ rs.getString("name")+" ");//列属性一

System.out.println("salary = "+ rs.getString("salary"));//列属性二

编译运行:

E:\Coding\java\test>javac TestSQLite.java

E:\Coding\java\test>java TestSQLite

name = ZhangSan salary = 8000

name = LiSi salary = 7800

name = WangWu salary = 5800

name = ZhaoLiu salary = 9100

总结:本文介绍了嵌入式数据库SQLite在Java中的应用,

通过创建表、插入数据、查询等操作介绍了在Java中对数据库的操纵。

sqlite3数据库使用实例

SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table students( ...> id integer primary key, ...> name text not null unique, ...> sex int default 1, ...> bak text); sqlite> .tables students sqlite> .help .backup ?DB? FILE Backup DB (default "main") to FILE .bail ON|OFF Stop after hitting an error. Default OFF .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE. .echo ON|OFF Turn command echo on or off .exit Exit this program .explain ?ON|OFF? Turn output mode suitable for EXPLAIN on or off. With no args, it turns EXPLAIN on. .header(s) ON|OFF Turn display of headers on or off .help Show this message .import FILE TABLE Import data from FILE into TABLE .indices ?TABLE? Show names of all indices If TABLE specified, only show indices for tables matching LIKE pattern TABLE. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values column Left-aligned columns. (See .width) html HTML

code insert SQL insert statements for TABLE line One value per line list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements .nullvalue STRING Print STRING in place of NULL values .output FILENAME Send output to FILENAME .output stdout Send output to the screen .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILENAME Execute SQL in FILENAME

sqlite3常用命令及语法

https://www.360docs.net/doc/6d2876739.html,/linchunhua/article/details/7184439 sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,SQLite 大量的被用于手机,PDA,MP3播放器以及机顶盒设备。 Mozilla Firefox使用SQLite作为数据库。 Mac计算机中的包含了多份SQLite的拷贝,用于不同的应用。 PHP将SQLite作为内置的数据库。 Skype客户端软件在内部使用SQLite。 SymbianOS(智能手机操作平台的领航)内置SQLite。 AOL邮件客户端绑定了SQLite。 Solaris 10在启动过程中需要使用SQLite。 McAfee杀毒软件使用SQLite。 iPhones使用SQLite。 Symbian和Apple以外的很多手机生产厂商使用SQLite。 下面就sqlite中的常用命令和语法介绍 https://www.360docs.net/doc/6d2876739.html,/download.html可下载不同操作系统的相关版本sqlite gedit 也可以使用火狐中的插件sqlite manager 新建数据库 sqlite3 databasefilename 检查databasefilename是否存在,如果不存在就创建并进入数据库(如果直接退出,数据库文件不会创建)如果已经存在直接进入数据库对数据库进行操作 sqlite中命令: 以.开头,大小写敏感(数据库对象名称是大小写不敏感的) .exit .help 查看帮助针对命令 .database 显示数据库信息;包含当前数据库的位置 .tables 或者.table 显示表名称没有表则不显示 .schema 命令可以查看创建数据对象时的SQL命令; .schema databaseobjectname查看创建该数据库对象时的SQL的命令;如果没有这个数据库对象就不显示内容,不会有错误提示 .read FILENAME 执行指定文件中的SQL语句 .headers on/off 显示表头默认off .mode list|column|insert|line|tabs|tcl|csv 改变输出格式,具体如下 sqlite> .mode list sqlite> select * from emp; 7369|SMITH|CLERK|7902|17-12-1980|800||20 7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30 如果字段值为NULL 默认不显示也就是显示空字符串

ASP NET 6种常用数据库的连接方法

1.C#连接连接Access 程序代码: using System.Data; using System.Data.OleDb; .. string strConnection="Provider=Microsoft.Jet.OleDb.4.0;"; strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb"; OleDbConnection objConnection=new OleDbConnection(strConnection); .. objConnection.Open(); objConnection.Close(); 解释: 连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的! strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源. "Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,https://www.360docs.net/doc/6d2876739.html,就是靠这个和Access的数据库连接的. "Data Source=C:\BegASPNET\Northwind.mdb"是指明数据源的位置,他的标准形式是"Data

Source=MyDrive:MyPath\MyFile.MDB". PS: 1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符. 2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接: strConnection+="Data Source="; strConnection+=MapPath("Northwind.mdb"); 这样就可以省得你写一大堆东西了! 3.要注意连接字符串中的参数之间要用分号来分隔. "OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道. "objConnection.Open();"这用来打开连接.至此,与Access数据库的连接完成. 2.C#连接SQL Server 程序代码: using System.Data; using System.Data.SqlClient; .. string strConnection="user id=sa;password=;"; strConnection+="initial catalog=Northwind;Server=YourSQLServer;";

浅谈嵌入式SQLITE数据库实现与应用

开源(Opensource):这是它最强大的地方。开源,意味着你可以品读它的源码,你可以随时修改它,加入你自己的特性,而这一切完全免费的。开源,是一种精神。 实现部分 好了,现在从实现的角度来谈谈个人体会,这也是我比较关注的。 SQLite是一款优秀的嵌入式数据库管理系统,这里有两层含义:一是它经常作为动态库嵌入到应用程序; 另外一方面它通常用于嵌入式设备或其它要求较低的桌面应用。如果把它作为内存数据库,个人觉得不是很适合。毕竟,它的写并发性不是很好,此时,TimesTen也许会更好,Berkey DB也许是一个不错的选择。SQLite这样的嵌入式数据库与主存数据库的应用场景、实现以及对资源的需求都是不一样的。 (1)事务处理 事务的核心问题有两个:并发控制和恢复。解决了并发控制和恢复问题的系统,就能允许它的用户假设程序是原子的(atomically)执行的——好像没有其它的程序同时执行;而且是可靠的(reliably)——不会产生失败。原子性和可靠性的抽象,则称为事务(transaction)。其实,事务并不是DBMS的专利,任何分布式系统,都面对并发和恢复问题,而解决的方法就是事务,只不过,我们更常听到DBMS中的事务。 并发控制保证事务的原子执行,它使得交错执行的事务看起来是一个接一个的顺序执行的,完全没有交错执行。如果交错执行的结果与顺序执行的结果一致,则称为串行化(serializable)。 恢复使得数据库仅仅包含那些正常完成的事务的结果。如果事务在执行的过程中发生错误,不能继续进行,恢复算法必须清除部分完成事务产生的影响。 ?并发控制 SQLite只支持库级锁,库级锁意味着什么?——意味着同时只能允许一个写操作,也就是说,即事务T1在A表插入一条数据,事务T2在B表中插入一条数据,这两个操作不能同时进行,即使你的机器有100个CPU,也无法同时进行,而只能顺序进行。表级都不能并行,更别说元组级了——这就是库级锁。但是,SQLite尽量延迟申请X锁,直到数据块真正写盘时才申请X锁,这是非常巧妙而有效的。 ?恢复 SQLite的恢复技术是影子分页技术(shadow paging)技术的典型代表。 DBMS的常用恢复技术有影子分页技术与基于日志的技术,前者在早其数据库管理系统中用到,比如Sys tem R,现代DBMS中已经很难见到它的身影了。 影子分页技术与基于日志技术相比,优点是实现简单,消除了写日志记录的开销,恢复的速度也快(不需要redo和undo)。影子分页的缺点就是事务提交时要输出多个块,这使得提交的开销很大,而且以块为单位,很难应用到允许多个事务并发执行的情况——这是它致命的缺点。 (2)查询处理 SQLite的查询处理本质上就是一个SQL编译器和一个虚拟机。而实现这些功能只用了十多个文件,整个实现实现简单而有效,但是也存在一些问题。首先,SQLite字典数据很简单,实际上它的字典就一个表s qlite_mater,所有的信息都是通过对sqlite_master中SQL语句进行解析获取的,而解析一个SQL语句,都需要进行词法分析、语法分析、甚至虚拟机代码的生成。而这一过程是很需要时间的,而且,查询计划也没有重用。其次,查询优化还比较简单,特别是连接操作,只通过循环来做(MySQL也一样)。但是,仅仅数万代码,我们不能对它要求太苛求。 (3)存储模型

SQLITE3的操作方法及应用

数据库的操作 我们在这个项目中使用的是SQLITE3数据库软件。 通过使用SQLITE3进行创建数据库,创建表,插入记录,查询记录,更新记录,关闭数据库等操作来实现将相应的数据存入数据库中。 1.打开数据库,创建表 1.1sqlite*db;定义一个sqlite*的变量 sqlite3_open(“./link.db”,&db); 在当前目录下打开一个名为link.db的数据库,若是没有则在当前目录下创建一个名为link.db 的数据库。 1.2sql="create table weblink(id integer primary key,domain text,page text,fromdomain text,status integer);" 在已打开的数据库中创建一个名weblink的表。表的属性如下: id integer primary key:ID号(表中黙认包含的) domain text:域名 page text:子网页 fromdomain text:源域名 status integer:状态标志 1.3sqlite3_exec(db,sql,NULL,NULL,NULL); 执行一条sql语句的函数。 函数原型:int sqlite3_exec(sqlite3*,const char*sql,sqlite3_callback,void*,char**errmsg) 第1个参数是前面open函数得到的指针。说了是关键数据结构。 第2个参数const char*sql是一条sql语句,以\0结尾。 第3个参数sqlite3_callback是回调,当这条语句执行之后,sqlite3会去调用你提供的这个函数。(什么是回调函数,自己找别的资料学习) 第4个参数void*是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里面,如果不需要传递指针给回调函数,可以填NULL。等下我们再看回调函数的写法,以及这个参数的使用。 第5个参数char**errmsg是错误信息。注意是指针的指针。sqlite3里面有很多固定的错误信息。执行sqlite3_exec之后,执行失败时可以查阅这个指针(直接printf(“%s\n”,errmsg))得到一串字符串信息,这串信息告诉你错在什么地方。sqlite3_exec函数通过修改你传入的指针的指针,把你提供的指针指向错误提示信息,这样sqlite3_exec函数外面就可以通过这个char*得到具体错误提示。 说明:通常,sqlite3_callback和它后面的void*这两个位置都可以填NULL。填NULL表

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

嵌入式系统技术报告(题目 SQLITE数据库的概述和使用)

合肥学院 嵌入式系统设计课程 技术报告 (2014-2015第2学期) 报告题目:SQLite数据库概述和使用专业:自动化 班级:级自动化卓越班 姓名: 指导老师:干开峰

摘要 自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变的非常庞大,并占用相当多的系统资源。嵌入式数据库直接在应用程序进程中运行,提供了零配置运行模式,并且资源占用非常少。作为一个开源的嵌入式数据库产品,SQLite具有系统开销小,检索效率高的特性,嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API去实现对数据的存取操作。更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。嵌入式数据库的一个很重要的特点是体积非常小,同时,很多嵌入式数据库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的身影。SQLite是D·理查德·希普开发出来的用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库。 关键词:SQLite;嵌入式;数据库

目录 1SQLite简介 (1) 2SQLite工作原理 (1) 3SQLite的功能特性 (2) 4SQLite的结构 (2) 5SQLite的使用 (4) 5.1SQLite里面的一些基本的操作: (4) 5.2SQLite的一些类的使用及说明: (5) 5.3SQLite嵌入式数据库使用注意: (10) 6总结 (11)

sqlite3使用教程

Sqlite3教程 一、基本命令 1、进入命令行环境: 显示版本号,并告诉每一条SQL语句必须用分号;结尾2、命令行帮助:

3、退出命令行环境 或者 二、数据库相关命令 1、创建(或打开)一个新的数据库:文件名 若文件存在,刚打开该文件;若文件不存在,则创建一个*.db数据库文件。 导入SQL语句文件。

、列出所有数据表: 4、显示数据库结构: 用一些SQL语句描述数据库的结构。 5、显示表的结构:表名 6、导入数据:文件名表名 若导入csv文件,设置分隔符为逗号。 、导出数据:文件名 查询结果默认在终端显示,查询表格结构,语句查询表格数据。设置查询目标后,查询结果显示在设置的文件中 文件名 然后输入sql查询语句,查询的结果显示在设置的文件中,不在终端显示 运行恢复导出到终端(标准输出)。 导出数据到excle表格中 设置分隔符为逗号: 设置导出文件名,后缀为csv: 查询语句:表名

三、数据显示命令 运行表名,显示全表的内容 1.设置分隔符:分隔符 默认分隔符是“|”。 2.设置显示模式:模式

默认的是list显示模式,一般使用column模式。 3.显示标题栏: 4.设置每一列的显示宽度: 5.列出当前显示格式设置情况: 四、数据库基本操作 1.数据库定义语言DDL 在关系型数据库中,数据库中的表table、视图、索引、关系和触发器等等,构成了数据库的架构。在SQL语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即DDL。 SQLite数据库引擎支持下列三种DDL语句: ●CREATE:创建 ●ALTER TABLE:改变表的结构 ●DROP:删除

基于JSP的SQLServer数据库访问技术

数据库及信息管理 本栏目责任编辑:闻翔军 1引言 随着网络的飞速发展,在网络上发布公司与个人的主页已成为一种时尚。又加上电子商务的新浪潮,促使网站技术不断创新,尤其是服务器端程序语言更是日新月异,JSP是最受欢迎的一种网页程序语言。 大部分公司的网站和电子商务网站都需要利用数据库来存储重要的数据信息,对数据库中的数据进行查询、修改、更新、删除等操作是JSP访问数据库的基本操作,本文详细介绍了如何利用JSP和JDBC-ODBC桥访问SQLServer2000数据库的方法和技术。 2JSP JSP是JavaServerPages的简称,由SunMicrosystems公司倡 导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。 与其它网页技术标准相比,JSP具有很多优势:一次编写,到处运行;系统的多平台支持;强大的伸缩性;多样化和功能强大的开发工具支持。鉴于这些优势,许多程序员在编写网站程序时优先选择JSP技术。但是JSP环境配置比较繁琐,对于初学JSP的人员来说,感觉无从下手,本文就详细介绍了配置JSP环境的详细步骤。 执行JSP代码首先需要进行JAVA运行环境安装和配置,它保证了JSP的跨平台性,可以从SUN公司的主页上查询并下载所需的软件进行安装;其次需要JSP引擎的安装(例:Tomcat),有时还需要配置IIS更为方便快捷地进行JSP网页编程。JSP环境的配置稍微繁琐一些,相关资料请查阅网络上资料。 3JDBC-ODBC JSP访问SQLServer数据库的方法有多种,JDBC-ODBC桥是一种非常快速而直接的访问方式。JDBCTM是一种用于执行SQL 语句的JavaTMAPI(JDBC本身是个商标名,而不是一个缩写字;然而,JDBC常被认为是代表“Java数据库连接(JavaDatabaseCon-nectivity)” )。它由一组用Java编程语言编写的类和接口组成,允许用户从Java应用程序中访问任何表格化数据源。 JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。有了JDBC,各种关系数据库发送SQL语句就是一件很容易的事。而且,使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。 JDBC支持数据访问的两层模型(应用层、 数据库层),也支持三层模型(客户层、 中间层、数据源层)。因此,JDBC不仅可以在应用程序中使用,也可以作为中间层服务器应用程序的一部分使用。 ODBC是OpenDatabaseConnectivity的缩写,即开放数据库 互连,是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的 DBMS的ODBC驱动程序完成。 JDBC-ODBC是利用现有的ODBC,将JDBC翻译为ODBC的调用,使Java应用可以访问所有支持ODBC的数据库。这种方法操作简单,本文以此种驱动方法为例来说明如何利用JDBC访问 数据库。访问的主要步骤如下: (1)加载JDBC驱动程序:JDBC的驱动管理器查找到相应的数据库驱动程序并加载。常用的方法是在程序中使用Class.forName()方法动态装载并注册数据库驱动,在数据库的驱动程序加载后, 就可以建立与该数据库的连接了。 (2)建立数据库连接:使数据库驱动连接到相应的数据库。常使用DriverManager类的静态方法getConnection(Stringrul,Stringuser,Stringpassword)方法来完成。其中,url是数据库连接串,指定 收稿日期:2006-09-25 作者简介:马宁(1973-),女,河北省唐山人,唐山师范学院计算机系应用教研室(主任),讲师,现主要从事计算机程序语言、计算机应用的教学与科研工作;邓先瑞(1973-),女,讲师,现在中国科学院攻读博士,主要从事现主要从事计算机程序语言、自动化的教学与科研工作;杜瑞庆(1974-),男,河北省赞皇县人,讲师,现主要从事计算机程序语言的教学与科研工作。 基于JSP的SQLServer数据库访问技术 马宁,邓先瑞,杜瑞庆 (唐山师范学院,河北唐山063000) 摘要:随着网络和网络技术的飞速发展,网站编程语言也发展了很多,JSP是最受欢迎的优秀网页程序设言,本文详细介绍了利用 JSP和JDBC-ODBC访问SQLServer数据库的方法和技巧,对于程序员方便快捷地编写跨平台的高水平网页程序有一定地参考价值。 关键词:网络;JSP;JDBC-ODBC;SQLServer数据库;平台中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)02-10323-02 TechnologyofAccessingSQLServerDatabasesBasedonJSP MANing,DENGXian-rui,DURui-qing(TangshanTeachersCollege,Tangshan063000,China) Abstract:Withdevelopmentofwebandwebtechnology,programminglanguagesofwebhavemadearapidprogress.JSPisthefavoritelanguageforprogrammingwebpages.HowtouseJSPandJDBC-ODBCtoaccessSQLServerdatabasesisintroducedinthispaper,whichisusefulforprogrammerstoprogramtoplevelwebpagesthatcanworkonanyplatform. Keywords:web;JSP;JDBC-ODBC;SQLServerdatabase;platform 323

7种方法连接数据库

连接数据库的方法小结 1.ODBC API ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API 进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 2.MFC ODBC 由于直接使用ODBC API编写应用程序要编制大量代码,开发者往往需要花费很多的精力在非核心代码的维护上,而Visual C++提供了MFC ODBC类,封装了ODBC API,这使得利用MFC ODBC来创建ODBC应用程序非常简便。 3.DAO(Data Access Object) DAO提供了一种通过程序代码创建和操纵数据库的机制,多个DAO构成一个体系结构,在这个体系结构中,各个DAO对象协同工作。MFC DAO是Microsoft提供的用于访问Microsoft jet数据库文件的强有力的数据库开发工具,它通过封装DAO,向程序员提供了DAO操作数据库的手段。 4.OLE DB OLE DB(Object Linking and Embedding, Database, 又称为OLE DB或OLE-DB),一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像). OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序. 你的ADO调用先被送到OLEDB,然后再交由ODBC 处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.

SQLite 数据库文件分析

SQLite数据库文件分析 前言 性急的兄弟可以跳过前言直接看第1章,特别性急的兄弟可以跳过前面各章,直接看鸣谢。最近对SQLite数据库很感兴趣,认真地学了有半个多月了,越学越觉着好玩。好玩归好玩,只是目前没什么实际用途,那就写点儿东西吧,否则半个月不是白学了嘛! SQLite数据库包括多方面的知识,比如VDBE什么的。据说那些东西会经常变。确实,我用的是3.6.18版,我看跟其它文档中描述的3.3.6的VDBE已经很不一样了。所以决定先写文件格式,只要是3.?.?的版本,文件格式应该不会有太大变化吧。 网上介绍SQLite文件格式的文章并不少,但一般都是针对小文件:一个表,几条记录,两个页。本文准备一直分析到比较大的文件,至少B-tree和B+tree中得有内结点(就是说不能只有一个既是根又是叶的结点,就是说表中得多点记录,得建索引),还要争取对SQLite 的各类页都做出分析。 在分析的过程中,争取把SQLite数据库关于文件格式的基本规定也都介绍一下。这样,本文既是一个综合性的技术文档,又带有实例说明,兄弟们参考时岂不是就很方便了吗?既然是技术文档,要想读懂总得先掌握点SQLite数据库的基本知识吧。所以,先介绍参考文献。 0.1 参考文献 1-The Definitive Guide to SQLite . Michael Owens:据说是比较经典的SQLite著作,我看写得是挺好的。边看边翻译了其中的主要部分,但不敢拿出来,大家还是看原文吧。 2-SQLite源代码:其实有关SQLite的最原始说明可能都在源代码中了。把此项列在第2,只是因为我是先看的书再看的代码,估计大家也会是这个顺序吧。先浏览一下代码还是很有收获的,特别是几个主要的.h文件,对本文的写作很有帮助。有关文件格式的说明主要在btreeInt.h中。 3-SQLite入门与分析:网上Arrowcat的系列文章。Arrowcat应该是一个很博学的人,看他的文章收获很大,在此也算是鸣谢吧。 4-SQLite . Chris Newman:我没看,因为也是网上能够下载到的重要资源,所以也在此列出。看目录内容应该比参考文献1简单一些,但出版日期也更早了一些。 5-NULL:在网上搜了半天,国内为什么就没有关于SQLite的好书呢? 6- https://www.360docs.net/doc/6d2876739.html,/fileformat.html:如果这篇文章看懂了,其实我这篇东西根本就不用再看了。这是介绍SQLite文件格式的权威文档,列在最后,是因为我也是写完这篇东西后才看到的。该文档由SQLite官方网站提供,当初没看,一是因为上网少,还没仔细浏览人家的网站就开始干了(太激动),其实归根结蒂还是因为英语不好。看到此文档这后还敢把我的东西发出来,有两个原因:一、为其他英语比我强不了多少的兄弟提供一点方便,二、我这里有例子,看起来更形象一些吧。

C#数据库连接操作大全

C#数据库连接操作大全 下面是c#与数据库的连接及增删改除的各种操作,全部经过上机验证。本人是从事软件开发,如果各位有什么问题或者需要帮助的可以在我的空间留言。 一:数据库连接代码: SqlConnection objSqlConnection = new SqlConnection ("server = 127.0.0.1;uid = sa; pwd =;database =test"); objSqlConnection.Open(); 二:数据库的添加记录代码: int i = 0; string s1 = "", s2 = ""; i = Convert.ToInt16(textBox1.Text); s1 = textBox2.Text; s2 = textBox3.Text; SqlConnection objSqlConnection = new SqlConnection("server = 127.0.0.1;uid = sa; pwd =;database =test"); objSqlConnection.Open(); MessageBox.Show("数据库连接成功", "好"); try { SqlCommand sqlcom = new SqlCommand("insert into info(id,name,sex) values( " + i + ",'" + s1 + "','" + s2 + "')", objSqlConnection); sqlcom.ExecuteNonQuery(); MessageBox.Show("添加成功!", "啊"); } catch (Exception a) { MessageBox.Show(a.ToString()); } MessageBox.Show("添加成功!", "啊"); } 三:数据库的修改代码: int i = 0; string s1 = "", s2 = ""; s1 = textBox2.Text; s2 = textBox3.Text; if (textBox1.Text.Length == 0) i = 0; else i = Convert.ToInt32(textBox1.Text);

浅谈SQLite

浅谈SQLite:实现与应用 1、前言 有一些日子没有仔细关注SQLite了,今天打开其主页,发现其最新的版本已经是3.6.22了,更让我惊喜的是它的用户越来越多,而且邮件列表的关注者也越来越多,突然觉得自己已经太old了。惊喜的同时,不得不聊上几句了。 首先,来看看都有哪些人在使用SQLite,主页上列举一长串NB的用户,其中不乏像Adobe,Apple,Firefox,甚至连google,Microsoft,SUN这样的用户。 Firefox:这是我的机器上V3.5.7安装目录下的文件: 可以发现用的SQLite 3.6.16.1。 据说,Google在它的Desktop for Mac,Google Gears,以及Android,甚至Chrome 中都用到SQLite,而且,Google的工程师对SQLite的全文检索功能作了很大的贡献(contribution)。还有Apple,Micorsoft,SUN等等,这里就不列举了。详细见 https://www.360docs.net/doc/6d2876739.html,/famous.html。有这些公司的参与,对SQLite的发展应该有很大的帮助,尤其是像Google这样的用户。 2、实现与应用 下面从实现及应用的角度来谈谈SQLite,先看看SQLite的特点(功能)吧。 特点

简单(simple):SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS:一个头文件,一个动态库文件,你就拥有了关系数据库的所有功能了。简单,是SQLite最明显的哲学。它提供的API少而简单。只需要一个DLL文件,你的程序马上就拥有了一个功能强大的数据库引擎,这是一件很美妙的事。 小巧(small):我用VS 2005在Windows下编译的3.6.11,Release版为368K,用时不到20秒——而编译MySQL时,要花上几分钟。而当我插入10000条int数据时,内存开销660K,磁盘开销92K。 事务(transaction):事务是现代商业数据处理系统最基本的要求,而Access,不论是在可执行文件大小(看了一下Access2003的可执行文件大小为6.32M,两者不是一个量级),还是事务特性,都是不能和SQLite 相比的。 并发性(Concurrency):由于SQLite通过OS的文件锁来实现库级锁,粒度很大,但是,它通过一些复杂特殊的处理(具体可以参见分析系列),尽量的提升了读写的并发度。如果你还有担心,你可以看看这篇文章: https://www.360docs.net/doc/6d2876739.html,/database/sqlite_cms.html。 SQL92:SQLite支持绝大部分的标准SQL语句,你只需要几百K的空间,就可以换来需要上百兆的通用DBMS几乎所有操作了。 方便(Convenience):如果你的程序要使用SQLite,只需要将拷贝你的程序目录即可。 开源(Opensource):这是它最强大的地方。开源,意味着你可以品读它的源码,你可以随时修改它,加入你自己的特性,而这一切完全免费的。开源,是一种精神。 实现部分 好了,现在从实现的角度来谈谈个人体会,这也是我比较关注的。 SQLite是一款优秀的嵌入式数据库管理系统,这里有两层含义:一是它经常作为动态库嵌入到应用程序;另外一方面它通常用于嵌入式设备或其它要求较低的桌面应用。如果把它作为内存数据库,个人觉得不是很适合。毕竟,它的写并发性不是很好,此时,TimesTen

sqlite3在Linux下的安装和使用

sqlite3在Linux下的安装和使用 2008-06-10 16:51:14| 分类:sqlite|字号订阅 一.sqlite3的安装和配置 下载sqlite3源码包 tar xvfz sqlite-src-3.3.5 cd sqlite-3.3.5 ./configure –no-tcl make (如果在arm板上用需修改Makefile,在LIBS 项中加入–L/usr/local/arm/3.3.2/lib 保存后退出.然后再make) 安装成功后生成文件将被复制到指定目录 再加入一个环境变量 vi /etc/profile 在export区域加入SQLITE3_PATH=/usr/local/sqlite-3.3.5 保存后退出 source /etc/profile 有用文件分别为$SQLITE3_PATH/include/sqlite3.h 头文件 $SQLITE3_PATH/bin/sqlite3 可执行文件 $SQLITE3_PATH/lib/libsqlite3.a https://www.360docs.net/doc/6d2876739.html, libsqlite3.so -> libsqlite3.so.0.8.6 libsqlite3.so.0 -> libsqlite3.so.0.8.6 libsqlite3.so.0.8.6 在程序使用到数据库 #include

在.pro文件中添加: INCLUDEPATH +=$(SQLITE3_PATH)/include DEPENDPATH +=$(SQLITE3_PATH)/include LIBS +=-L$(SQLITE3_PATH)/lib LIBS +=-lsqlite3 保存后退出 tmake hello.pro –o Makefile make 二.程序的编写: sqlite3 *db; int rc = sqlite3_open(“data.db”,&db); //打开数据库data.db if(rc!=SQLITE_OK);//打开失败 创建表rc = sqlite3_exec(db,”create table student(ID integer primarykey,name nvarchar(32))”,NULL,NULL,&mrrmsg); 插入rc = sqlite3_exec(db,”insert into student values(…3?,?Zhang San?)”,0,0,&mrrmsg); 修改rc = sqlite3_exec(db,”update student set name=?Li Si? where ID=?4?”,0,0,&mrrmsg);删除rc = sqlite3_exec(db,”delete * from student where name=?Wang Wu?”,0,0,&mrrmsg); 查询是重点 回调式查询rc = sqlite3_exec(db,”select * from student where ID>2 and name<>?Zhang San?”,LoadInfo,NULL,&mrrmsg); 查询的结果通过LoadInfo函数来导出

相关文档
最新文档