Search in sources :

Example 71 with KriptonContentValues

use of com.abubusoft.kripton.android.sqlite.KriptonContentValues in project kripton by xcesco.

the class LongDaoImpl method selectOne.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, value, value2 FROM long_bean WHERE value=${value} and value2=${value2}</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>value</dt><dd>is associated to bean's property <strong>value</strong></dd>
 * 	<dt>value2</dt><dd>is associated to bean's property <strong>value2</strong></dd>
 * </dl>
 *
 * <h2>Query's parameters:</h2>
 * <dl>
 * 	<dt>${value}</dt><dd>is binded to method's parameter <strong>value</strong></dd>
 * 	<dt>${value2}</dt><dd>is binded to method's parameter <strong>value2</strong></dd>
 * </dl>
 *
 * @param value
 * 	is binded to <code>${value}</code>
 * @param value2
 * 	is binded to <code>${value2}</code>
 * @param listener
 * 	is the cursor listener
 */
@Override
public void selectOne(long[] value, Long[] value2, OnReadCursorListener listener) {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_ONE_SQL4;
    // add where arguments
    _contentValues.addWhereArgs((value == null ? "" : new String(serializer1(value), StandardCharsets.UTF_8)));
    _contentValues.addWhereArgs((value2 == null ? "" : new String(serializer2(value2), StandardCharsets.UTF_8)));
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        if (_cursor.moveToFirst()) {
            do {
                listener.onRead(_cursor);
            } while (_cursor.moveToNext());
        }
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) Cursor(android.database.Cursor)

Example 72 with KriptonContentValues

use of com.abubusoft.kripton.android.sqlite.KriptonContentValues in project kripton by xcesco.

the class ShortDaoImpl method selectList.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, value, value2 FROM short_bean WHERE value=${value} and value2=${value2}</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>value</dt><dd>is associated to bean's property <strong>value</strong></dd>
 * 	<dt>value2</dt><dd>is associated to bean's property <strong>value2</strong></dd>
 * </dl>
 *
 * <h2>Query's parameters:</h2>
 * <dl>
 * 	<dt>${value}</dt><dd>is binded to method's parameter <strong>value</strong></dd>
 * 	<dt>${value2}</dt><dd>is binded to method's parameter <strong>value2</strong></dd>
 * </dl>
 *
 * @param value
 * 	is binded to <code>${value}</code>
 * @param value2
 * 	is binded to <code>${value2}</code>
 * @return collection of bean or empty collection.
 */
@Override
public List<ShortBean> selectList(short[] value, Short[] value2) {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_LIST_SQL5;
    // add where arguments
    _contentValues.addWhereArgs((value == null ? "" : new String(serializer1(value), StandardCharsets.UTF_8)));
    _contentValues.addWhereArgs((value2 == null ? "" : new String(serializer2(value2), StandardCharsets.UTF_8)));
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        // log section END
        ArrayList<ShortBean> resultList = new ArrayList<ShortBean>(_cursor.getCount());
        ShortBean resultBean = null;
        if (_cursor.moveToFirst()) {
            int index0 = _cursor.getColumnIndex("id");
            int index1 = _cursor.getColumnIndex("value");
            int index2 = _cursor.getColumnIndex("value2");
            do {
                resultBean = new ShortBean();
                resultBean.id = _cursor.getLong(index0);
                if (!_cursor.isNull(index1)) {
                    resultBean.value = ShortBeanTable.parseValue(_cursor.getBlob(index1));
                }
                if (!_cursor.isNull(index2)) {
                    resultBean.value2 = ShortBeanTable.parseValue2(_cursor.getBlob(index2));
                }
                resultList.add(resultBean);
            } while (_cursor.moveToNext());
        }
        return resultList;
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor)

Example 73 with KriptonContentValues

use of com.abubusoft.kripton.android.sqlite.KriptonContentValues in project kripton by xcesco.

the class ShortDaoImpl method selectOne.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, value, value2 FROM short_bean WHERE value=${value} and value2=${value2}</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>value</dt><dd>is associated to bean's property <strong>value</strong></dd>
 * 	<dt>value2</dt><dd>is associated to bean's property <strong>value2</strong></dd>
 * </dl>
 *
 * <h2>Query's parameters:</h2>
 * <dl>
 * 	<dt>${value}</dt><dd>is binded to method's parameter <strong>value</strong></dd>
 * 	<dt>${value2}</dt><dd>is binded to method's parameter <strong>value2</strong></dd>
 * </dl>
 *
 * @param value
 * 	is binded to <code>${value}</code>
 * @param value2
 * 	is binded to <code>${value2}</code>
 * @param listener
 * 	is the ShortBean listener
 */
@Override
public void selectOne(short[] value, Short[] value2, OnReadBeanListener<ShortBean> listener) {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_ONE_SQL3;
    // add where arguments
    _contentValues.addWhereArgs((value == null ? "" : new String(serializer1(value), StandardCharsets.UTF_8)));
    _contentValues.addWhereArgs((value2 == null ? "" : new String(serializer2(value2), StandardCharsets.UTF_8)));
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        // log section END
        ShortBean resultBean = new ShortBean();
        if (_cursor.moveToFirst()) {
            int index0 = _cursor.getColumnIndex("id");
            int index1 = _cursor.getColumnIndex("value");
            int index2 = _cursor.getColumnIndex("value2");
            int rowCount = _cursor.getCount();
            do {
                // reset mapping
                // id does not need reset
                resultBean.value = null;
                resultBean.value2 = null;
                // generate mapping
                resultBean.id = _cursor.getLong(index0);
                if (!_cursor.isNull(index1)) {
                    resultBean.value = ShortBeanTable.parseValue(_cursor.getBlob(index1));
                }
                if (!_cursor.isNull(index2)) {
                    resultBean.value2 = ShortBeanTable.parseValue2(_cursor.getBlob(index2));
                }
                listener.onRead(resultBean, _cursor.getPosition(), rowCount);
            } while (_cursor.moveToNext());
        }
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) Cursor(android.database.Cursor)

Example 74 with KriptonContentValues

use of com.abubusoft.kripton.android.sqlite.KriptonContentValues in project kripton by xcesco.

the class ShortDaoImpl method selectOne.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, value, value2 FROM short_bean WHERE value=${value} and value2=${value2}</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>value</dt><dd>is associated to bean's property <strong>value</strong></dd>
 * 	<dt>value2</dt><dd>is associated to bean's property <strong>value2</strong></dd>
 * </dl>
 *
 * <h2>Query's parameters:</h2>
 * <dl>
 * 	<dt>${value}</dt><dd>is binded to method's parameter <strong>value</strong></dd>
 * 	<dt>${value2}</dt><dd>is binded to method's parameter <strong>value2</strong></dd>
 * </dl>
 *
 * @param value
 * 	is binded to <code>${value}</code>
 * @param value2
 * 	is binded to <code>${value2}</code>
 * @param listener
 * 	is the cursor listener
 */
@Override
public void selectOne(short[] value, Short[] value2, OnReadCursorListener listener) {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_ONE_SQL4;
    // add where arguments
    _contentValues.addWhereArgs((value == null ? "" : new String(serializer1(value), StandardCharsets.UTF_8)));
    _contentValues.addWhereArgs((value2 == null ? "" : new String(serializer2(value2), StandardCharsets.UTF_8)));
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        if (_cursor.moveToFirst()) {
            do {
                listener.onRead(_cursor);
            } while (_cursor.moveToNext());
        }
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) Cursor(android.database.Cursor)

Example 75 with KriptonContentValues

use of com.abubusoft.kripton.android.sqlite.KriptonContentValues in project kripton by xcesco.

the class ShortDaoImpl method insert.

/**
 * <p>SQL insert:</p>
 * <pre>INSERT INTO short_bean (value, value2) VALUES (${bean.value}, ${bean.value2})</pre>
 *
 * <p><code>bean.id</code> is automatically updated because it is the primary key</p>
 *
 * <p><strong>Inserted columns:</strong></p>
 * <dl>
 * 	<dt>value</dt><dd>is mapped to <strong>${bean.value}</strong></dd>
 * 	<dt>value2</dt><dd>is mapped to <strong>${bean.value2}</strong></dd>
 * </dl>
 *
 * @param bean
 * 	is mapped to parameter <strong>bean</strong>
 *
 * @return <strong>id</strong> of inserted record
 */
@Override
public long insert(ShortBean bean) {
    if (insertPreparedStatement2 == null) {
        // generate static SQL for statement
        String _sql = "INSERT INTO short_bean (value, value2) VALUES (?, ?)";
        insertPreparedStatement2 = KriptonDatabaseWrapper.compile(_context, _sql);
    }
    KriptonContentValues _contentValues = contentValuesForUpdate(insertPreparedStatement2);
    _contentValues.put("value", ShortBeanTable.serializeValue(bean.value));
    _contentValues.put("value2", ShortBeanTable.serializeValue2(bean.value2));
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // log for insert -- BEGIN
        StringBuffer _columnNameBuffer = new StringBuffer();
        StringBuffer _columnValueBuffer = new StringBuffer();
        String _columnSeparator = "";
        for (String columnName : _contentValues.keys()) {
            _columnNameBuffer.append(_columnSeparator + columnName);
            _columnValueBuffer.append(_columnSeparator + ":" + columnName);
            _columnSeparator = ", ";
        }
        Logger.info("INSERT INTO short_bean (%s) VALUES (%s)", _columnNameBuffer.toString(), _columnValueBuffer.toString());
        // log for content values -- BEGIN
        Triple<String, Object, KriptonContentValues.ParamType> _contentValue;
        for (int i = 0; i < _contentValues.size(); i++) {
            _contentValue = _contentValues.get(i);
            if (_contentValue.value1 == null) {
                Logger.info("==> :%s = <null>", _contentValue.value0);
            } else {
                Logger.info("==> :%s = '%s' (%s)", _contentValue.value0, StringUtils.checkSize(_contentValue.value1), _contentValue.value1.getClass().getCanonicalName());
            }
        }
        // log for content values -- END
        // log for insert -- END
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    // insert operation
    long result = KriptonDatabaseWrapper.insert(insertPreparedStatement2, _contentValues);
    bean.id = result;
    return result;
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues)

Aggregations

KriptonContentValues (com.abubusoft.kripton.android.sqlite.KriptonContentValues)1293 Cursor (android.database.Cursor)574 ArrayList (java.util.ArrayList)174 BigInteger (java.math.BigInteger)70 KriptonRuntimeException (com.abubusoft.kripton.exception.KriptonRuntimeException)68 BigDecimal (java.math.BigDecimal)68 TypeAdapterString (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterString)27 TypeAdapterByte (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterByte)22 TypeAdapterByteArray (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterByteArray)22 TypeAdapterChar (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterChar)22 TypeAdapterDouble (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterDouble)22 TypeAdapterFloat (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterFloat)22 TypeAdapterInteger (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterInteger)22 TypeAdapterLong (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterLong)22 TypeAdapterShort (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterShort)22 TypeAdapterBoolean (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterBoolean)19 Person (sqlite.feature.javadoc.Person)15 TypeAdapterAddress (sqlite.feature.typeadapter.kripton180.adapters.TypeAdapterAddress)15 Employee (sqlite.feature.typeadapter.kripton180.Employee)10 Person (sqlite.feature.contentprovider.kripton35.entities.Person)8