Cursor工具类,用于支持根据列名取得对应的值

/*
 * @(#)CursorUtil.java           Project:UniversityTimetable
 * Date:2013-1-21
 *
 * Copyright (c) 2013 CFuture09, Institute of Software, 
 * Guangdong Ocean University, Zhanjiang, GuangDong, China.
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lurencun.cfuture09.androidkit.utils.lang;

import android.database.Cursor;

/**
 * Cursor工具类,用于支持根据列名取得对应的值
 * 
 * @author Geek_Soledad (66704238@51uc.com)
 */
public class CursorUtil {

   /**
    * 以字符串返回请求的列的值
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的字符串类型值。
    */
   public static String getString(Cursor c, String column) {
      return c.getString(c.getColumnIndex(column));
   }

   /**
    * 以整型返回请求的列的值
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的整型值。
    */
   public static int getInt(Cursor c, String column) {
      return c.getInt(c.getColumnIndex(column));
   }

   /**
    * 以短整型返回请求的列的值
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的短整型值。
    */
   public static short getShort(Cursor c, String column) {
      return c.getShort(c.getColumnIndex(column));
   }

   /**
    * 以长整型返回请求的列的值
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的长整型值。
    */
   public static long getLong(Cursor c, String column) {
      return c.getLong(c.getColumnIndex(column));
   }

   /**
    * 以浮点型返回请求的列的值。
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的浮点型值。
    */
   public static float getFloat(Cursor c, String column) {
      return c.getFloat(c.getColumnIndex(column));
   }

   /**
    * 以双精度浮点型返回请求的列的值。
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的双精度浮点型值。
    */
   public static double getDouble(Cursor c, String column) {
      return c.getDouble(c.getColumnIndex(column));
   }

   /**
    * 以二进制大对象类型返回请求的列的值。
    * 
    * @param c
    * @param column
    *            请求的列名
    * @return 返回请求的二进制大对象值。
    */
   public static byte[] getBlob(Cursor c, String column) {
      return c.getBlob(c.getColumnIndex(column));
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你回答这个问题。基于你的要求,我可以提供如下的 python 代码示例: ```python class DataUpdater: def __init__(self, db_conn): self.db_conn = db_conn def update_data_by_code(self, code, new_data): """ 该方法根据给定的 code 更新数据库中对应的数据信息。 :param code: str 数据的唯一标识码。 :param new_data: dict 要更新的数据,其结构应当与数据库中该条数据的结构相同。 :return: bool 返回 True 表示数据更新成功,返回 False 则表示更新失败。 """ cursor = self.db_conn.cursor() try: # 根据 code 查询数据库中对应的数据信息。 cursor.execute('SELECT * FROM data_table WHERE code=?', (code,)) row = cursor.fetchone() if row is None: return False # 如果没有查询到该条数据,直接返回 False。 # 更新数据信息。 cursor.execute('UPDATE data_table SET field1=?, field2=?, field3=? WHERE code=?', (new_data['field1'], new_data['field2'], new_data['field3'], code)) self.db_conn.commit() return True # 数据更新成功,返回 True。 except Exception as e: print('Failed to update data by code: {}'.format(e)) self.db_conn.rollback() return False # 数据更新失败,返回 False。 ``` 在上面的代码中,我们定义了一个名为 `DataUpdater` 的方法类,该类用于更新数据库中的数据。类中包含一个初始化方法 `__init__` 和一个更新数据的方法 `update_data_by_code`。其中,初始化方法接受一个数据库连接参数 `db_conn`,用于连接数据库。更新数据的方法 `update_data_by_code` 接受两个参数:`code` 表示要更新的数据的唯一标识码,`new_data` 表示要更新的数据,其结构应当与数据库中该条数据的结构相同。该方法会根据给定的 code 查询数据库中对应的数据信息,然后更新数据库中该条数据的字段,并最终将更新内容持久化到数据库中。如果更新成功,则返回 True,否则返回 False。 希望这个方法对你有所帮助,如果你有任何问题或者需要更多的帮助,请随时告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值