背景:数据库在工作中是必不可少的一个工具,所以有必要熟练操作数据库。由于工作一段时间后对数据库的操作还不是很熟练,所以现在好好的整理下数据库的一些常用技巧。
1,目前我主要用的数据库是goggle自带的SqliteOpenHelper这个帮助类,但是用起来相对麻烦,后面接触到ormlite框架,发现非常好用。于是后面改用这个框架。
Android内自带数据库帮助类SqliteOpenHelper,通过继承这个帮助类后,用sql语句就可以实现了数据库创建,更新,以及常见数据库的增,删查改操作。
ormlite优点:简单,易上手,不用sql语句。缺点:它是通过注解的方式将bean数据映射到数据库,中所以相对来说效率偏低,但是它里面有一个callBatchTasks解决了添加数据效率低的问题。
OrmLite框架使用 :
下载链接:http://ormlite.com/releases/ 下载ormlite-android-4.48.jar 和 ormlite-core-4.48.jar这两个jar包放到lib目录下就可以用这个框架了。
它有两个注解:
①添加@DatabaseTable 注解到你每个需要持久化的类的顶部。里里面成员为tableName=你的表名
②添加@DatabaseField 注解到你bean类的字段的上面。 也就是你的列名。里面的成员变量如下:
常用的注解 | ||
成员名 | 数据类型 | 描述 |
columnName | String | 数据库的列名。如果你没有设置这个成员名,会用标准的形式代替它。 |
dataType | 字段的数据类型。通常情况下,数据类型是从java类的成员变量获取的,并不需要进行特殊指出。它相当于是SQL的数据类型。 | |
defaultValue | String | 当我们在表中创建新的记录时的一个字段的默认值。默认情况下是没有这个值的。 |
width | Integer | 字段的宽度,主要用于字符串字段。默认是0,意味着采用默认的数据类型和具体的数据库的默认情况。对于字符串以为在255个字符即使有些数据库并不支持。 |
canBeNull | Boolean | 字段是否能被分配null值。默认是true。如果你设置成false,那么你每次在数据库中插入数据是都必须为这个字段提供值。 |
id | Boolean | 这个字段是否是id,默认是false。在一个class中只有一个成变量可以有这个值。id字段是一条记录的唯一标识而且是必需的,只有generatedId和 generatedIdSequence其中之一。 |
generatedId | Boolean | 字段是否自动增加。默认为false。类中的一个成员变量设置了这个值,它告诉数据库每添加一条新记录都自动增加id。当一个有generatedid的对象被创建时使用Dao.create()方法,数据库将为记录生成一个id,它会被返回并且被create方法设置进对象。 |
generatedIdSequence | String | 序列编号的名字,这个值在生成的时候会被使用。和generatedId相似,但是你能够指定使用的序列名称。默认是没有的。一个class中只有一个成员变量可以设置这个值。这仅仅在数据库需要序列生成id时才需要它。如果你选择使用generatedId代替它,那么代码将自动增加序列名。 |
其他注解 | ||
foreign | throwIfNull | |
useGetSet | persisted | |
unknownEnumName | format | |
uniqueIndexName | allowGeneratedIdInsert | |
foreignAutoRefresh | columnDefinition | |
unique | boolean | |
uniqueCombo | indexName | |
index | uniqueIndexName | |
version | maxForeignAutoRefreshLevel | |
foreignColumnName | foreignAutoCreate | |