宝马2019年9月上旬最新中文数据库SQLiteDBs 4.19.12支持新款F、G和I系列车型,以及劳斯莱斯,MINI,宝马摩托。
新版本提供Multi-VCI,可支持D-CAN线,ENET线,ICOM,OPS/GT1直接连接诊断。
可查看维修资料、电路图等等 。
包含以下文件:
DiagDocDb.sqlite
streamdataprimitive_OTHER.sqlite
streamdataprimitive_ZHCN.sqlite
xmlvalueprimitive_OTHER.sqlite
xmlvalueprimitive_ZHCN.sqlite
注意事项:
1、购买本数据库,宝马汇只提供数据下载,不支持任何免费技术支持,如需有偿技术支持请点击这里。
2、本站所售商品为虚拟物品,链接一旦发出,概不退款。
3、获取中文数据库“解压密码”,需要支付网站30元,点击下方的地址购买。
购买地址:
手机或电脑登录微店购买
到宝马汇网站查看此地图
1。
创建一个新的通用应用程序 2。在Visual Studio 2015上安装SQLite Visual Studio拓展包(点此下载) 3。
添加NuGet包,运行程序包管理器控制台命令:Install-Package SQLite。Net-PCL 4。
增加所需的参照:在Windows通用 -扩展中找到通用应用程序平台的SQLite,并在SQLite扩展安装进行到第2步时添加 5。更新MainPage。
xaml 6。创建消息模型:创建一个模型,并用SQLite来存储数据。
该模型被转换成本地数据库中的表。 普通的模型和使用SQLite的唯一区别是,必须添加一些额外的属性,例如:[主键,自动递增]。
要利用这些属性,必须添加以下引用:using SQLite。Net。
Attributes; 7。串联所有的东西:转至MainPage。
xaml的代码;定位SQLite文件;建立与数据库的连接;基于步骤6,创建消息模型的表;点击添加按钮,该应用程序将提交文本框的内容到的SQLite数据库;点击检索按钮,应用程序会获取所有添加的消息,并在文本块中显示出来。
1.当在A机安装完Oracle数据库后在B机安装Oracle数据库时,一定要先将磁盘阵列D盘格式化,而不是只将D盘中已由A机安装的Oracle数据库删除,否则可能会出现意想不到的错误,例如Oracle侦听服务失败等; 2.最终安装好Oracle数据库后,要对D:\Oracle\Orant\network\Admin\ Listener。
ora文件进行修改,其中Server名称一定要改为Active host name Alias,如不进行修改将使客户端的Oracle数据库用户无法连接到Oracle数据库中。 3.在Hosts文件中增加一条记录,使Active IP Address和Active Host Name相互对应,这样系统就会自动起到解析作用。
Hosts文件位于c:\Winnt\ system32\drivers\etc目录下。 4.要注意不到万不得已,不要强行切换,避免产生数据错误。
如必须对双机进行切换,可先进入Svrmgr Oracle服务器控制台,用Shutdown命令关闭Oracle数据库,再进行切换。
1:Android SQLite数据库创建数据库 1。
Context。createDatabase(String name,int version , int mode,CursorFactory factory) 如果创建不成功则抛出FileNotFoundException异常 Java代码 1。
SQLiteDatabase DataBase=this。openOrCreateDatabase ("DataBase。
db", 2。MODE_PRIVATE, 3。
new CursorFactory(){ 4。//创建新的数据库,名称Database,模式MODE_PRIVATE 5。
public Cursor newCursor(SQLiteDatabase db, 6。SQLiteCursorDriver masterQuery, 7。
String editTable, 8。SQLiteQuery query){ 9。
return null; 10。} 11。
}); 12。SQLiteDatabase DataBase=this。
openOrCreateDatabase ("DataBase。db", 13。
MODE_PRIVATE, 14。new CursorFactory(){ 15。
//创建新的数据库,名称Database,模式MODE_PRIVATE 16。public Cursor newCursor(SQLiteDatabase db, 17。
SQLiteCursorDriver masterQuery, 18。 String editTable, 19。
SQLiteQuery query){ 20。return null; 21。
} 22。}); 2:Android SQLite数据库打开已经存在的数据库。
[1]SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 SQLite第一个Alpha版本诞生于2000年5月。
至今已经有13个年头,SQLite也迎来了一个版本 SQLite 3已经发布。 目录 1简介 2功能 3特性 4语言绑定 5类型 6客户端管理 7使用技巧 8SQLite 常用函数 9版本发布 10注意事项 1简介 编辑 SQLite是遵守ACID[2]的关系型数据库管理系统,它包含在一个相对小的C库中。
它是D。RichardHipp建立的公有领域项目。
[3] 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。
这在消耗总量、延迟时间和整体简单性上有积极的作用。 整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。
它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。[3] 2功能 编辑 SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,它支持的SQL包括: ATTACH DATABASE BEGIN TRANSACTION comment COMMIT TRANSACTION COPY CREATE INDEX CREATE TABLE CREATE TRIGGER CREATE VIEW DELETE DETACH DATABASE DROP INDEX DROP TABLE DROP TRIGGER DROP VIEW END TRANSACTION EXPLAIN expression INSERT ON CONFLICT clause PRAGMA REPLACE ROLLBACK TRANSACTION SELECT UPDATE 同时它还支持事务处理功能等等。
也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。
如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。 到2013年10月17日最新版本是 3。
8。1 。
它的官方网站是: 。cn,能在上面获得源代码和文档。
同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士 3特性 编辑 1。 ACID事务 2。
零配置 – 无需安装和管理配置 3。储存在单一磁盘文件中的一个完整的数据库 4。
数据库文件可以在不同字节顺序的机器间自由的共享 5。支持数据库大小至2TB 6。
足够小, 大致13万行C代码, 4。43M 7。
比一些流行的数据库在大部分普通数据库操作要快 8。 简单, 轻松的API 9。
包含TCL绑定, 同时通过Wrapper支持其他语言的绑定 10。 良好注释的源代码, 并且有着90%以上的测试覆盖率 11。
独立: 没有额外依赖 12。 源码完全的开源, 你可以用于任何用途, 包括出售它 13。
支持多种开发语言,C, PHP, Perl, Java, C#,Python, Ruby 4语言绑定 编辑 可以从C/C++程序中使用这个库,还可以获得对Tcl和一些其他脚本语言的绑定。 在CPAN的DBD::SQLite上有一个Perl的DBI/DBD模块,它不是到SQLite的接口,而是包括整个SQLite数据库引擎在其中并不需要任何额外的软件。
还有一个Python模块叫做PySQLite。 PHP从PHP5。
0开始包含了SQLite,但是自5。 1版之后开始成为一个延伸函式库。
SQLite能与PHP4一起工作但不包含在其中。 Rails2。
0。3将缺省的数据库配置改为了SQLite 3。
[3] 5类型 编辑 SQLite的数据类型 首先你会接触到一个让你惊讶的名词: Typelessness(无类型)。 对! SQLite是无类型的。
这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有在一种情况下不是, 稍后解释)。 对于SQLite来说对字段不指定类型是完全有效的。
如: Create Table ex1(a, b, c); 诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型。 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎时能起到一个提示或帮助的作用。
SQLite支持常见的数据类型, 如: CREATE TABLE ex2 a VARCHAR(10), b NVARCHAR(15), c TEXT, d INTEGER, e FLOAT, f BOOLEAN, g CLOB, h BLOB, i TIMESTAMP, j NUMERIC(10,5) k VARYING CHARACTER (24), l NATIONAL VARYING CHARACTER(16) 前面提到在某种情况下, SQLite的字段并不是无类型的。 即在字段类型为”Integer Primary Key”时。
6客户端管理 编辑 SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的GUI软件。例如, SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。
SQLiteMan SQLite Manager, 以 火狐浏览器的扩展形式提供的SQLite客户端。 SQLite Database Browser, a 。
Appropriate Uses For SQLite SQLite is different from most other SQL database engines in that its primary design goal is to be simple: Simple to administer Simple to operate Simple to embed in a larger program Simple to maintain and customize Many people like SQLite because it is small and fast。
But those qualities are just happy accidents。 Users also find that SQLite is very reliable。
Reliability is a consequence of simplicity。 With less complication, there is less to go wrong。
So, yes, SQLite is small, fast, and reliable, but first and foremost, SQLite strives to be simple。 Simplicity in a database engine can be either a strength or a weakness, depending on what you are trying to do。
In order to achieve simplicity, SQLite has had to sacrifice other characteristics that some people find useful, such as high concurrency, fine-grained access control, a rich set of built-in functions, stored procedures, esoteric SQL language features, XML and/or Java extensions, tera- or peta-byte scalability, and so forth。 If you need some of these features and do not mind the added complexity that they bring, then SQLite is probably not the database for you。
SQLite is not intended to be an enterprise database engine。 It is not designed to compete with Oracle or PostgreSQL。
The basic rule of thumb for when it is appropriate to use SQLite is this: Use SQLite in situations where simplicity of administration, implementation, and maintenance are more important than the countless complex features that enterprise database engines provide。 As it turns out, situations where simplicity is the better choice are more common than many people realize。
Another way to look at SQLite is this: SQLite is not designed to replace Oracle。 It is designed to replace fopen()。
Situations Where SQLite Works Well Application File Format SQLite has been used with great success as the on-disk file format for desktop applications such as financial analysis tools, CAD packages, record keeping programs, and so forth。 The traditional File/Open operation does an sqlite3_open() and executes a BEGIN TRANSACTION to get exclusive access to the content。
File/Save does a COMMIT followed by another BEGIN TRANSACTION。 The use of transactions guarantees that updates to the application file are atomic, durable, isolated, and consistent。
Temporary triggers can be added to the database to record all changes into a (temporary) undo/redo log table。 These changes can then be played back when the user presses the Undo and Redo buttons。
Using this technique, an unlimited depth undo/redo implementation can be written in surprisingly little code。 Embedded devices and applications Because an SQLite database requires little or no administration, SQLite is a good choice for devices or services that must work unattended and without human support。
SQLite is a good fit for use in cellphones, PDAs, set-top boxes, and/or appliances。 It also works well as an embedded database in downloadable consumer applications。
Websites SQLite usually will work great as the database engine for low to medium traffic websites (which is to say, 99。 9% of all websites)。
The amount of web traffic that SQLite can handle depends, of course, on how heavily the website uses its database。 Generally speaking, any site that gets fewer than 100K hits/day should work fine with SQLite。
The 100K hits/day figure is a conservative estimate, not a hard upper bound。 SQLite has been demonstrated to work with 10 times that amount of traffic。
Replacement for ad hoc disk files Many programs use fopen(), fread(), and fwrite() to create and manage files of data in home-grown formats。 SQLite works particularly well as a replacement for these ad hoc data files。
Internal or temporary databases For programs that have a lot of data that must be sifted and sorted in diverse ways, it is often easier and quicker to load the data into an in-memory SQLite database and use queries with joins and ORDER BY clauses to extract the data in the form and order needed rather than to try to code the same operations manually。 Using an SQL database internally in this way also gives the program greater flexibility since new columns and indices can be added without having to recode every query。
首先介绍我用Sqlite解决的实际问题是什么? 问题1:某个功能的数据需要连接一个远程数据库查询速度很慢,查一次数据不容易,希望能够重复利用之前查过的数据集。
问题2:非常大的数据量比如几千万甚至几亿条数据,一次性读取到DataTable中,会内存溢出的,所以在第一次分析时就是通过Reader的方式,分析完一条后并不在内存中保存,但是紧接着用户的第二次分析、第三次分析还是要用到的第一次分析的数据,如果我们重新查询一次远程服务器,效率可想而知啊。 结合上面的2个问题,为了解决效率问题和数据重复利用度,减少数据库服务器的压力,我才用Sqlite缓存数据(当然这不是唯一也不是最好的解决方案) 。
优化SQLiteHelper 陆兄的SQLiteHelper类我增加了几个有用的方法: 第一个方法是GetSchema,得到某个表的表结构。 ///
/// public DataTable GetSchema() { using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); DataTable data = connection.GetSchema("TABLES"); connection.Close(); //foreach (DataColumn column in data.Columns) //{ // Console.WriteLine(column.ColumnName); //} return data; } } 第二个方法是IsTableExist,判断SQLite数据库重某个表是否存在 。
///
/// 要创建的SQLite数据库文件路径 public bool IsTableExist(string tableName) { using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand(connection)) { command.CommandText = "SELECT COUNT(*) FROM sqlite_master where type='table' and name='" + tableName + "'"; int iaaa = Convert.ToInt32(command.ExecuteScalar()); if (Convert.ToInt32(command.ExecuteScalar()) == 0) { return false; } else { return true; } } } } 第三个方法是Query,执行查询语句,返回DataSet ///
/// 查询语句 /// DataSet public DataSet Query(string SQLString) { using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection); command.Fill(ds, "ds"); } catch (System.Data.SQLite.SQLiteException ex) { throw new Exception(ex.Message); } return ds; } } 构建缓存对象模型和缓存控制器 每一块缓存对象,在数据库中会产生一个表,而表名称是有缓存控制器自动生成的,访问缓存的工作全部交由缓存控制器完成,通过缓存项的ID和ModuleKey来访问。 在Sqlite中还需要一个系统表来维护每个缓存项和实际缓存存储表之间的对应关系,我们称之为配置表,它将在缓存控制器创建Sqlite缓存数据库文件时创建。
配置表共有以下几个字段,分别和缓存对象模型CdlCacheItem类映射: 列名称 说明 Id 缓存的唯一数字编号 ModuleKey 缓存模块名称,一个模块可以有多个缓存数据,ID可以区分。实际应用时,某个功能时会经常缓存数据的,所以通过ModuleKey就可以得到这个功能所有的缓存列表,然后选定其中的部分缓存来进行使用。
Comments 缓存说明 TableName 缓存数据存储的数据表名称 AddDate 缓存时间戳 创建数据库的方法如下: static void CreateDB() { //总共有ID、ModuleKey、Comments、AddDate这几列 string sql = "CREATE TABLE SYSCDLTABLES(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,MODULEKEY VARCHAR(200),COMMENTS VARCHAR(500),TABLENAME VARCHAR(100),ADDDATE DATETIME)"; SQLiteDBHelper.CreateDB(CACHEFILEPATH, sql); } 每个缓存项(缓存对象模型)定义如下,和配置表对应: ///
/// Tecky Lee /// 2011-1-11 15:11 public class CdlCacheItem { int m_id; public int Id { get { return m_id; } set { m_id = value; } } string m_moduleKey; public string ModuleKey { get { return m_moduleKey; } set { m_moduleKey = value; } } string m_comments; public string Comments { get { return m_comments; } set { m_comments = value; } } string m_tableName; public string TableName { get { return m_tableName; } set { m_tableName = value; } } DateTime m_timestamp; public DateTime Timestamp { get { return m_timestamp; } set { m_timestamp = value; } } } 下面是控制器的接口定义: public interface ICdlCacheController { void BeginLoadRow(); void EndLoadRow(); System.Collections。.。
内存溢出导致程序崩溃,也分是java层崩了,还是mysql崩了。
如果是java层崩了,注意不要一次性加载太多的数据到内存,并且不在使用的数据要彻底放弃引用关系。java虽然是自动回收,回收的原则就是一个对象不再被持有,即引用计数为零。
如果数据太大,可考虑临时文件。如果是mysql崩了,首先增加配置缓存。
一般来说mysql是不容易崩的,特别是插入操作的时候。查询的时候如果查询结果记录集特别大,会导致一个查询需要使用很大的内存空间,这种是有问题的。
而插入操作都是一条一条的执行,不会导致大内存的使用。如果仅仅是数据移植,也尽量不要用ORM框架,比如hibernate,mybatis这些东西,因为他们都有自己的缓存,直接使用JDBC比较好。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.789秒