要获得一个好的数据库需要资源齐全,界面简便易用,设计美观大方。
传统的数据库方案并不具备强大的d性伸缩能力,比如说常见的Oracle,MySQL,PostgreSQL等数据库,在面对数据量的爆发性的增长时,往往很容易遇到存储的瓶颈。
因此,不得不选用一些集群方案,如 Oracle RAC、 MySQL Sharding等,但这些解决方案同云计算的d性伸缩能力想比,还是会有不小的差距。云时代用户需要的是可以随需应变,d性支撑各种业务的数据库系统。
企业的数据库注意
在云时代,因为所有的数据库资源都是分布式存储的,每个数据库节点出现问题都是很正常的事情,所以就必须有一种可以实现数据一致性的数据复制方式来保证服务的高可用。
云数据库虽然可以做到d性扩容,但当并发大到一定规模,云数据库需要在很高的并发下,依然可以维持系统的稳定。因此,云时代的数据库必须有合理的架构设计,才能更好的支持系统的需求。
Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数,调用父类 SQLiteOpenHelper 的构造函数
onCreate()方法;// TODO 创建数据库后,对数据库的 *** 作
onUpgrage()方法。// TODO 更改数据库版本的 *** 作
当你完成了对数据库的 *** 作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。
*** 作数据库的最佳实践是创建一个辅助类,例如联系人模块
class ContactsDatabaseHelper extends SQLiteOpenHelper
3.2 Cursor类
Android使用Cursor类返回一个需要的值,Cursor作为一个指针从数据库查询返回结果集,使用Cursor允许Android更有效地管理它们需要的行和列,你使用ContentValues对象存储键/值对,它的put()方法允许你插入不同数据类型的键值。
3.3 数据类型
SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。
四、数据库 *** 作
4.1创建和打开数据库
在Android中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个SQLiteDatebase对象,否则抛出异常FileNotFoundException。
下面我们来创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabase。
mSQLiteDatabase=this.openOrCreateDatabase("Test",MODE_PRIVATE,null)
4.2创建表
通过execSQL方法来执行一条SQL语句。
String CREATE_TABLE="create table 表名(列名,列名,……)"
mSQLiteDatabase.execSQL(CREATE_TABLE)
创建表的时候总要确定一个主键,这个字段是64位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字autoincrement。
4.3删除表
mSQLiteDatabase("drop table 表名")
1、获得所有数据库名
选择master数据库,查询表sysdatabases;
2、获得所有数据表名
选择你要查询的数据库,查询表sysobjects,并且xtype为'U';
3、获得所有字段名和字段类型
选择你要查询的数据库,查询表syscolumns,语句如下:
select
b.name, a.name, c.name
from syscolumns a
inner join sysobjects b on a.id = b.id
inner join systypes c on a.xtype = c.xtype
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)