Lần trước mình đã đề cập đến việc tạo một lớp quản lý chung với một số tác vụ:
- Tạo database
- Chạy câu SQL
- Tạo table
- ....
Lần này mình xin giới thiệu để tạo một thể hiện của một trường trong Database SQLite
Trong SQLite chỉ có 3 kiểu dữ liệu là: INT, TEXT, BOOL
Vì thế ta cần tạo một biến enum chứa một bộ các hằng số về kiểu dữ liệu này. Sau đó implement một số phương thức như trong VD sau
- Tạo database
- Chạy câu SQL
- Tạo table
- ....
Lần này mình xin giới thiệu để tạo một thể hiện của một trường trong Database SQLite
Trong SQLite chỉ có 3 kiểu dữ liệu là: INT, TEXT, BOOL
Vì thế ta cần tạo một biến enum chứa một bộ các hằng số về kiểu dữ liệu này. Sau đó implement một số phương thức như trong VD sau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| package com.tannm.doan.taskmanager.database; import java.util.Calendar; import android.content.*; public class DataField { // types public static enum Type { INT, TEXT, BOOL }; // fields private Calendar dateOut = Calendar.getInstance(); // fields private DataRow dataRow = null ; private ContentValues values = null ; // fields private int index = 0 ; private String sName = "" ; private Type fieldType = Type.INT; private boolean bCanBeNull = true ; private boolean bPrimaryKey = false ; // methods public DataField( int index, String sName, Type fieldType, boolean bCanBeNull, boolean bPrimaryKey) { this .index = index; this .sName = sName; this .fieldType = fieldType; this .bCanBeNull = bCanBeNull; this .bPrimaryKey = bPrimaryKey; } public String getColumnDefinition() { String s = sName + " " + getSqlType(fieldType); if (bPrimaryKey) s += " PRIMARY KEY" ; if (!bCanBeNull) s += " NOT NULL" ; return s; } public Type getType() { return fieldType; } public int getIndex() { return index; } public String getSqlType(Type value) { switch (value) { case INT: return "INTEGER" ; case TEXT: return "TEXT" ; case BOOL: return "INTEGER" ; } return "TEXT" ; } public void setParentRow(DataRow dataRow) { this .dataRow = dataRow; this .values = this .dataRow.getContentValues(); } public String getName() { return sName; } // getters public String asString() { return values.getAsString(sName); } public long asLong() { return values.getAsLong(sName); } public boolean asBoolean() { return (values.getAsLong(sName) == 1 ); } public boolean isNull() { return (values.get(sName) == null ); } public Calendar asCalendar() { dateOut.setTimeInMillis(values.getAsLong(sName)); return dateOut; } // setters public void set(String value) { values.put(sName, value); } public void set( long value) { values.put(sName, value); } public void set( boolean value) { int i = (value) ? 1 : 0 ; values.put(sName, i); } public void set(Calendar value) { values.put(sName, value.getTimeInMillis()); } public void setNull() { values.put(sName, (String) null ); } } |
Không có nhận xét nào:
Đăng nhận xét