DatabaseHelper类:
Java代码
1. package
2.
3. import
4. import
5. import
6. import
7.
8. /**
9. * SQLiteOpenHelper是一个辅助类,用来管理数据库的创建和版本他,它提供两个方面的功能
10. * 第一,getReadableDatabase()、getWritableDatabase()可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作
11. * 第二,提供了onCreate()、onUpgrade()两个回调函数,允许我们再创建和升级数据库时,进行自己的操作
12. */
13. public class DatabaseHelper extends
14. private static final int VERSION = 1;
15.
16. /**
17. * 在SQLiteOpenHelper的子类当中,必须有该构造函数
18. * @param context 上下文对象
19. * @param name 数据库名称
20. * @param factory
21. * @param version 当前数据库的版本,值必须是整数并且是递增的状态
22. */
23. public
24. int
25. //必须通过super调用父类当中的构造函数
26. super(context, name, factory, version);
27. }
28.
29. public DatabaseHelper(Context context, String name, int
30. this(context,name,null,version);
31. }
32.
33. public
34. this(context,name,VERSION);
35. }
36.
37. //该函数是在第一次创建的时候执行,实际上是第一次得到SQLiteDatabase对象的时候才会调用这个方法
38. @Override
39. public void
40. // TODO Auto-generated method stub
41. "create a database");
42. //execSQL用于执行SQL语句
43. "create table user(id int,name varchar(20))");
44. }
45.
46. @Override
47. public void onUpgrade(SQLiteDatabase arg0, int arg1, int
48. // TODO Auto-generated method stub
49. "upgrade a database");
50. }
51. }
Activity类:
1. package
2.
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10. import
11.
12. public class SQLiteActivity extends
13. /** Called when the activity is first created. */
14. private Button createDatabaseButton = null;
15. private Button updateDatabaseButton = null;
16. private Button insertButton = null;
17. private Button updateButton = null;
18. private Button selectButton = null;
19. private Button deleteButton = null;
20.
21. @Override
22. public void
23. super.onCreate(savedInstanceState);
24. setContentView(R.layout.main);
25. // 根据控件id获得相应的控件对象
26. createDatabaseButton = (Button) findViewById(R.id.createDatabase);
27. updateDatabaseButton = (Button) findViewById(R.id.updateDatabase);
28. insertButton = (Button) findViewById(R.id.insert);
29. updateButton = (Button) findViewById(R.id.update);
30. selectButton = (Button) findViewById(R.id.select);
31. deleteButton = (Button) findViewById(R.id.delete);
32. // 为按钮设置监听器
33. createDatabaseButton
34. new
35. updateDatabaseButton
36. new
37. new
38. new
39. new
40. new
41. }
42.
43. // 创建数据库点击事件监听器
44. class CreateDatabaseOnClickListener implements
45. public void
46. // 创建了一个DatabaseHelper对象,只执行这句话是不会创建或打开连接的
47. new DatabaseHelper(SQLiteActivity.this,
48. "test_yangyz_db");
49. // 只有调用了DatabaseHelper的getWritableDatabase()方法或者getReadableDatabase()方法之后,才会创建或打开一个连接
50. SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();
51. }
52. }
53.
54. // 更新数据库 点击事件监听器
55. class UpdateDatabaseOnClickListener implements
56. public void
57. // TODO Auto-generated method stub
58. new DatabaseHelper(SQLiteActivity.this,
59. "test_yangyz_db", 2);
60. // 得到一个只读的SQLiteDatabase对象
61. SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();
62. }
63.
64. }
65.
66. // 插入数据 点击事件监听器
67. class InsertOnClickListener implements
68. public void
69. // 创建ContentValues对象
70. new
71. // 向该对象中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据库当中的数据类型一致
72. "id", 1);
73. "name", "yangyz");
74. // 创建DatabaseHelper对象
75. new DatabaseHelper(SQLiteActivity.this,
76. "test_yangyz_db", 2);
77. // 得到一个可写的SQLiteDatabase对象
78. SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase();
79. // 调用insert方法,就可以将数据插入到数据库当中
80. // 第一个参数:表名称
81. // 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
82. // 第三个参数:ContentValues对象
83. "user", null, values);
84. }
85. }
86.
87. // updateButton点击事件监听器
88. class UpdateOnClickListener implements
89. public void
90. // 创建一个DatabaseHelper对象
91. new DatabaseHelper(SQLiteActivity.this,
92. "test_yangyz_db", 2);
93. // 得到一个可写的SQLiteDatabase对象
94. SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase();
95. // 创建一个ContentValues对象
96. new
97. "name", "zhangsan");
98. // 调用update方法
99. // 第一个参数String:表名
100. // 第二个参数ContentValues:ContentValues对象
101. // 第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符
102. // 第四个参数String[]:占位符的值
103. "user", values, "id=?", new String[] { "1"
104. "-----------update------------");
105. }
106. }
107.
108. // 查找数据库 点击事件监听器
109. class SelectOnClickListener implements
110. public void
111. null;
112. null;
113. //创建DatabaseHelper对象
114. new DatabaseHelper(SQLiteActivity.this,
115. "test_yangyz_db", 2);
116. // 得到一个只读的SQLiteDatabase对象
117. SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();
118. // 调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象
119. // 第一个参数String:表名
120. // 第二个参数String[]:要查询的列名
121. // 第三个参数String:查询条件
122. // 第四个参数String[]:查询条件的参数
123. // 第五个参数String:对查询的结果进行分组
124. // 第六个参数String:对分组的结果进行限制
125. // 第七个参数String:对查询的结果进行排序
126. "user", new String[] { "id",
127. "name" }, "id=?", new String[] { "1" }, null, null, null);
128. // 将光标移动到下一行,从而判断该结果集是否还有下一条数据,如果有则返回true,没有则返回false
129. while
130. "id"));
131. "name"));
132. }
133. "-------------select------------");
134. "id: "+id);
135. "name: "+name);
136. }
137. }
138.
139. // 删除 点击事件监听器
140. class DeleteOnClickListener implements
141. public void
142. //创建DatabaseHelper对象
143. new DatabaseHelper(SQLiteActivity.this,"test_yangyz_db",2);
144. //获得可写的SQLiteDatabase对象
145. SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase();
146. //调用SQLiteDatabase对象的delete方法进行删除操作
147. //第一个参数String:表名
148. //第二个参数String:条件语句
149. //第三个参数String[]:条件值
150. "user", "id=?", new String[]{"1"});
151. "----------delete----------");
152. }
153. }
154. }