用cursor获取储存的boolean值
时间: 2023-10-05 20:05:29 浏览: 128
如果你想要使用 Cursor 获取储存的布尔值,可以按照以下步骤进行:
1. 定义 Cursor 变量,并查询需要获取的数据:
```sql
DECLARE my_cursor CURSOR FOR
SELECT column_name
FROM table_name
WHERE boolean_column = TRUE/FALSE;
```
2. 执行 Cursor,并使用 FETCH 语句获取数据:
```sql
OPEN my_cursor;
FETCH NEXT FROM my_cursor INTO @column_value;
WHILE @@FETCH_STATUS = 0
BEGIN
-- TODO: 处理获取到的数据
FETCH NEXT FROM my_cursor INTO @column_value;
END;
CLOSE my_cursor;
DEALLOCATE my_cursor;
```
其中,`@column_value` 是用来存储获取到的布尔值的变量名,你可以在 TODO 部分进行处理。注意在使用完 Cursor 后,需要关闭并释放它的资源。
相关问题
public ArrayList<Book> BookDetails(DBHelper dbHelper,String bid){ SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("book",new String[]{"ISBN","bookname","author","press", "publicationtime","category","synopsis","inventory","page"},"id = ?", new String[]{bid + ""},null,null,null); ArrayList<Book> list = new ArrayList<>(); if (cursor != null && cursor.getCount() > 0){ while (cursor.moveToNext()){ String ISBN = cursor.getString(cursor.getColumnIndex("ISBN")); String bookname = cursor.getString(cursor.getColumnIndex("bookname")); String author = cursor.getString(cursor.getColumnIndex("author")); String press = cursor.getString(cursor.getColumnIndex("press")); String publicationtime = cursor.getString(cursor.getColumnIndex("publicationtime")); String category = cursor.getString(cursor.getColumnIndex("category")); String synopsis = cursor.getString(cursor.getColumnIndex("synopsis")); int inventory = cursor.getInt(cursor.getColumnIndex("inventory")); int page = cursor.getInt(cursor.getColumnIndex("page")); Book book = new Book(ISBN,bookname,author,press,publicationtime,category,synopsis,inventory,page); list.add(book); } } db.close(); return list; } //删除图书 public boolean DeleteBook(DBHelper dbHelper,String id){ SQLiteDatabase db = dbHelper.getWritableDatabase(); int flag = db.delete("book","id=?",new String[]{id + ""}); db.close(); boolean result; if (flag == -1){ result = false; }else { result = true; } return result; }解释每一行代码
这段代码是一个Android应用程序中与数据库交互的部分。它包含两个方法:`BookDetails()`和`DeleteBook()`。
`BookDetails()`方法的作用是根据传入的参数`dbHelper`和`bid`,从数据库中查询指定id的图书详细信息,并返回一个ArrayList<Book>对象。具体解释如下:
1. `SQLiteDatabase db = dbHelper.getWritableDatabase();`:获取一个可写的数据库对象。
2. `Cursor cursor = db.query("book",new String[]{"ISBN","bookname","author","press","publicationtime","category","synopsis","inventory","page"},"id = ?",new String[]{bid + ""},null,null,null);`:执行一个查询操作,查询表名为"book",并且返回的列为"ISBN","bookname","author","press","publicationtime","category","synopsis","inventory","page",其中"id=?"是查询条件,使用`new String[]{bid + ""}`表示要查询的id值。查询结果返回一个Cursor对象。
3. `ArrayList<Book> list = new ArrayList<>();`:创建一个`ArrayList<Book>`对象,用于存储查询结果。
4. `if (cursor != null && cursor.getCount() > 0){`:判断查询结果是否为空,如果不为空,则执行以下操作:
5. `while (cursor.moveToNext()){`:遍历查询结果。
6. `String ISBN = cursor.getString(cursor.getColumnIndex("ISBN"));`:获取查询结果中"ISBN"列的值。
7. `String bookname = cursor.getString(cursor.getColumnIndex("bookname"));`:获取查询结果中"bookname"列的值。
8. `String author = cursor.getString(cursor.getColumnIndex("author"));`:获取查询结果中"author"列的值。
9. `String press = cursor.getString(cursor.getColumnIndex("press"));`:获取查询结果中"press"列的值。
10. `String publicationtime = cursor.getString(cursor.getColumnIndex("publicationtime"));`:获取查询结果中"publicationtime"列的值。
11. `String category = cursor.getString(cursor.getColumnIndex("category"));`:获取查询结果中"category"列的值。
12. `String synopsis = cursor.getString(cursor.getColumnIndex("synopsis"));`:获取查询结果中"synopsis"列的值。
13. `int inventory = cursor.getInt(cursor.getColumnIndex("inventory"));`:获取查询结果中"inventory"列的值。
14. `int page = cursor.getInt(cursor.getColumnIndex("page"));`:获取查询结果中"page"列的值。
15. `Book book = new Book(ISBN,bookname,author,press,publicationtime,category,synopsis,inventory,page);`:创建一个`Book`对象,将查询结果中的各个列的值传入。
16. `list.add(book);`:将该`Book`对象添加到`ArrayList<Book>`对象中。
17. `db.close();`:关闭数据库连接。
18. `return list;`:返回存储查询结果的`ArrayList<Book>`对象。
`DeleteBook()`方法的作用是根据传入的参数`dbHelper`和`id`,从数据库中删除指定id的图书,并返回一个boolean类型的值表示操作是否成功。具体解释如下:
1. `SQLiteDatabase db = dbHelper.getWritableDatabase();`:获取一个可写的数据库对象。
2. `int flag = db.delete("book","id=?",new String[]{id + ""});`:执行一个删除操作,删除表名为"book",并且"id=?"是删除条件,使用`new String[]{id + ""}`表示要删除的id值。删除操作的结果返回一个int类型的值。
3. `db.close();`:关闭数据库连接。
4. `boolean result;`:定义一个boolean类型的变量`result`。
5. `if (flag == -1){`:判断删除操作的结果是否为-1,如果是,则表示操作失败。
6. `result = false;`:将`result`赋值为false。
7. `}else {`:如果删除操作的结果不为-1,则表示操作成功。
8. `result = true;`:将`result`赋值为true。
9. `return result;`:返回`result`的值,表示删除操作是否成功。
public ArrayList<User> UserList(DBHelper dbHelper){ SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("user",new String[]{"id","username","role"}, null,null,null,null,"id desc"); ArrayList<User> list = new ArrayList<>(); if (cursor != null && cursor.getCount() > 0){ while (cursor.moveToNext()){ String id = cursor.getString(cursor.getColumnIndex("id")); String username = cursor.getString(cursor.getColumnIndex("username")); String role = cursor.getString(cursor.getColumnIndex("role")); User user = new User(id,username,role); list.add(user); } } db.close(); return list; } //用户管理详情页 public ArrayList<User> UserDetails(DBHelper dbHelper,String uid){ SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("user",new String[]{"id","username","passlock","passkey","role"}, "id = ?",new String[]{uid + ""},null,null,null); ArrayList<User> list = new ArrayList<>(); if (cursor != null && cursor.getCount() > 0){ while (cursor.moveToNext()){ String id = cursor.getString(cursor.getColumnIndex("id")); String username = cursor.getString(cursor.getColumnIndex("username")); String passlock = cursor.getString(cursor.getColumnIndex("passlock")); String passkey = cursor.getString(cursor.getColumnIndex("passkey")); String role = cursor.getString(cursor.getColumnIndex("role")); User user = new User(id,username,passlock,passkey,role); list.add(user); } } db.close(); return list; } //修改用户密码 public boolean UpdatePassword(DBHelper dbHelper,String new_password,String uid){ SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("password",new_password); int flag = db.update("user",values,"id=?",new String[]{uid}); boolean result; if (flag == -1){ result = false;解释每一行代码
这段代码是一个 Android 应用程序中与用户管理相关的数据库操作代码。主要包括三个函数:
1. UserList: 从数据库中查询所有用户信息,返回一个 User 对象列表。
2. UserDetails: 根据用户id查询某个用户的详细信息,返回一个 User 对象列表。
3. UpdatePassword: 修改用户密码,返回一个布尔值表示操作是否成功。
具体解释如下:
1. UserList:
- dbHelper: DBHelper 对象,用于获取 SQLiteDatabase 对象。
- db: 获取可写的 SQLiteDatabase 对象。
- cursor: 从 user 表中查询所有记录,返回一个 Cursor 对象。
- list: 存储 User 对象的 ArrayList。
- while 循环: 遍历 Cursor 对象,将每一条记录转为 User 对象并添加到 list 中。
- db.close(): 关闭 SQLiteDatabase 对象。
- return list: 返回存储 User 对象的 ArrayList。
2. UserDetails:
- dbHelper: DBHelper 对象,用于获取 SQLiteDatabase 对象。
- db: 获取可写的 SQLiteDatabase 对象。
- cursor: 根据传入的 uid 查询 user 表中对应的记录,返回一个 Cursor 对象。
- list: 存储 User 对象的 ArrayList。
- while 循环: 遍历 Cursor 对象,将每一条记录转为 User 对象并添加到 list 中。
- db.close(): 关闭 SQLiteDatabase 对象。
- return list: 返回存储 User 对象的 ArrayList。
3. UpdatePassword:
- dbHelper: DBHelper 对象,用于获取 SQLiteDatabase 对象。
- db: 获取可写的 SQLiteDatabase 对象。
- values: ContentValues 对象,用于存储修改后的密码。
- flag: 根据传入的 uid 修改 user 表中对应的记录,并返回修改的记录数。
- result: 根据 flag 的值判断操作是否成功,返回一个布尔值。
- return result: 返回一个布尔值表示操作是否成功。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)