Skip to content

Commit ccdbfd5

Browse files
committed
Added more examples to the README.
1 parent 43e1f04 commit ccdbfd5

File tree

2 files changed

+79
-12
lines changed

2 files changed

+79
-12
lines changed

README.md

Lines changed: 78 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,101 @@ Android only, at present. (iOS support is planned.)
3434
Examples
3535
--------
3636

37-
### Querying an in-memory database
37+
### Executing an arbitrary SQL statement
3838

39-
This example also uses
40-
[`DatabaseUtils`](https://pub.dartlang.org/documentation/flutter_android/latest/android_database/DatabaseUtils-class.html)
41-
from the [flutter_android](https://pub.dartlang.org/packages/flutter_android) package.
39+
```dart
40+
await db.execSQL("DROP TABLE IF EXISTS links");
41+
42+
// Create a bookmark links table:
43+
await db.execSQL("""
44+
CREATE TABLE links (
45+
id INTEGER PRIMARY KEY NOT NULL,
46+
url TEXT NOT NULL,
47+
created_at DATETIME NOT NULL,
48+
updated_at DATETIME NULL
49+
)
50+
""");
51+
```
52+
53+
### Executing a `INSERT` statement
4254

4355
```dart
44-
import 'package:flutter_sqlcipher/sqlite.dart';
45-
import 'package:flutter_android/android_database.dart' show DatabaseUtils;
56+
// Insert a new link into the table:
57+
var linkID = db.insert(
58+
table: "links",
59+
values: <String, dynamic>{
60+
"id": null, // auto-incremented ID assigned automatically
61+
"url": "http://example.org/",
62+
"created_at": DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000,
63+
"updated_at": null,
64+
},
65+
);
66+
```
4667

47-
var db = await SQLiteDatabase.createInMemory();
68+
### Executing an `UPDATE` statement
4869

49-
var cursor = await db.rawQuery("SELECT 1 AS a, 2 as b, 3 AS c");
70+
```dart
71+
// Change the previously-inserted link from HTTP to HTTPS:
72+
db.update(
73+
table: "links",
74+
values: <String, dynamic>{
75+
"url": "https://example.org/",
76+
"updated_at": DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000,
77+
},
78+
where: "id = ?",
79+
whereArgs: <String>[linkID.toString()],
80+
);
81+
```
5082

51-
await DatabaseUtils.dumpCursor(cursor);
83+
### Executing a `DELETE` statement
84+
85+
```dart
86+
// Delete the previously-inserted link:
87+
db.delete(
88+
table: "links",
89+
where: "id = ?",
90+
whereArgs: <String>[linkID.toString()],
91+
);
5292
```
5393

54-
### Iterating the rows in a returned cursor
94+
### Executing an arbitrary SQL query
5595

5696
```dart
5797
for (var row in await db.rawQuery("SELECT 1 AS a, 2 as b, 3 AS c")) {
5898
print(row); // prints: {a: 1, b: 2, c: 3}
5999
}
60100
```
61101

102+
### Creating an in-memory database
103+
104+
```dart
105+
import 'package:flutter_sqlcipher/sqlite.dart';
106+
107+
var db = await SQLiteDatabase.createInMemory();
108+
```
109+
110+
### Creating an on-disk database
111+
112+
This example also uses
113+
[`Context`](https://pub.dartlang.org/documentation/flutter_android/latest/android_content/Context-class.html)
114+
from the [flutter_android](https://pub.dartlang.org/packages/flutter_android) package
115+
to obtain the app's cache directory path.
116+
117+
```dart
118+
import 'package:flutter_sqlcipher/sqlite.dart';
119+
import 'package:flutter_android/android_content.dart' show Context;
120+
121+
var cacheDir = await Context.cacheDir;
122+
await cacheDir.create(recursive: true);
123+
124+
var cacheFile = File("${cacheDir.path}/cache.db");
125+
126+
var db = await SQLiteDatabase.openOrCreateDatabase(cacheFile.path);
127+
```
128+
62129
### Using a bundled database from the app's assets
63130

64-
TODO
131+
(To be added.)
65132

66133
Frequently Asked Questions
67134
--------------------------

lib/src/database.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ abstract class SQLiteDatabase implements SQLiteClosable {
558558
'whereClause': where, // note the name mapping
559559
'whereArgs': whereArgs,
560560
};
561-
return await _channel.invokeMethod('update', request);
561+
return (await _channel.invokeMethod('update', request)) as int;
562562
}
563563

564564
/// Convenience method for updating rows in the database.

0 commit comments

Comments
 (0)