8
8
9
9
import com .amit .utilities .SharedPreferenceData ;
10
10
11
+ import org .json .JSONArray ;
12
+ import org .json .JSONObject ;
13
+
11
14
import java .lang .reflect .Method ;
12
15
import java .util .ArrayList ;
16
+ import java .util .Iterator ;
13
17
import java .util .LinkedHashMap ;
14
18
import java .util .TreeSet ;
15
19
20
24
* this class has method for executing db queries
21
25
* like: creating table, inserting into table, deleting table, dropping table
22
26
**/
23
- @ SuppressWarnings ({"unused" , "unchecked " , "PrimitiveArrayArgumentToVarargsMethod" , "ConstantConditions " })
27
+ @ SuppressWarnings ({"unused" , "WeakerAccess " , "UnusedReturnValue " })
24
28
public class DBHelper
25
29
{
26
30
private static final String TAG = DBHelper .class .getSimpleName ();
@@ -1102,12 +1106,12 @@ public DBHelper insertData(String tableName)
1102
1106
**/
1103
1107
//#endregion COMMENTS FOR insertDataWithTransaction method
1104
1108
@ Deprecated
1105
- public DBHelper insertDataWithTransaction (String tableName )
1109
+ public void insertDataWithTransaction (String tableName )
1106
1110
{
1107
1111
if (dbDataArrayList == null || dbDataArrayList .size () == 0 )
1108
1112
{
1109
1113
Log .e (TAG , "insertDataWithTransaction: Db Data was not provided. Cannot insert data in table." );
1110
- return this ;
1114
+ return ;
1111
1115
}
1112
1116
1113
1117
// tree set is used for removing duplicate column name from data array list
@@ -1233,7 +1237,6 @@ else if (columnData instanceof Double || columnData instanceof Float)
1233
1237
db .getWritableDatabase ().endTransaction ();
1234
1238
1235
1239
dbDataArrayList = new ArrayList <>();
1236
- return this ;
1237
1240
}
1238
1241
1239
1242
//#region COMMENTS FOR insertDataWithTransaction method
@@ -1249,12 +1252,12 @@ else if (columnData instanceof Double || columnData instanceof Float)
1249
1252
* this method is useful for inserting bulk records into table in less time
1250
1253
**/
1251
1254
//#endregion COMMENTS FOR insertDataWithTransaction method
1252
- public DBHelper insertDataWithTransaction (String tableName , int dbColumnCount )
1255
+ public void insertDataWithTransaction (String tableName , int dbColumnCount )
1253
1256
{
1254
1257
if (dbDataArrayList == null || dbDataArrayList .size () == 0 )
1255
1258
{
1256
1259
Log .e (TAG , "insertDataWithTransaction: Db Data was not provided. Cannot insert data in table." );
1257
- return this ;
1260
+ return ;
1258
1261
}
1259
1262
1260
1263
// tree set is used for removing duplicate column name from data array list
@@ -1385,7 +1388,155 @@ else if (columnData instanceof Double || columnData instanceof Float)
1385
1388
db .getWritableDatabase ().endTransaction ();
1386
1389
1387
1390
dbDataArrayList = new ArrayList <>();
1388
- return this ;
1391
+ }
1392
+
1393
+ //#region COMMENTS FOR insertDataWithJson method
1394
+ /**
1395
+ * 2019 Apr 25 - Thursday - 12:25 PM
1396
+ * insert data with json method
1397
+ *
1398
+ * this method will insert data using JSON Array or JSON Object
1399
+ *
1400
+ * @param tableName - name of the table to insert data in
1401
+ *
1402
+ * @param object - JSON Object or JSON Array of records and columns to be inserted
1403
+ *
1404
+ * @return True or False for success for failure in inserting records
1405
+ **/
1406
+ //#endregion COMMENTS FOR insertDataWithJson method
1407
+ public boolean insertDataWithJson (String tableName , Object object )
1408
+ {
1409
+ try
1410
+ {
1411
+ JSONArray jsonArray = new JSONArray ();
1412
+
1413
+ if (object == null )
1414
+ {
1415
+ Log .e (TAG , "insertData: object value cannot be null." );
1416
+ return false ;
1417
+ }
1418
+
1419
+ if (object instanceof ArrayList )
1420
+ {
1421
+ Log .e (TAG , "insertDataWithJson: cannot parse array list, you can use json object or json array." );
1422
+ return false ;
1423
+ }
1424
+
1425
+ if (object instanceof JSONObject )
1426
+ {
1427
+ Iterator <String > iterator = ((JSONObject ) object ).keys ();
1428
+
1429
+ while (iterator .hasNext ())
1430
+ {
1431
+ String key = iterator .next ();
1432
+ jsonArray = ((JSONObject ) object ).getJSONArray (key );
1433
+
1434
+ Log .e (TAG , "insertData: json array for " + key + " is: " + jsonArray );
1435
+ }
1436
+ }
1437
+ else if (object instanceof JSONArray )
1438
+ {
1439
+ jsonArray = (JSONArray ) object ;
1440
+ }
1441
+
1442
+ for (int i = 0 ; i < jsonArray .length (); i ++)
1443
+ {
1444
+ JSONObject jsonObject = jsonArray .getJSONObject (i );
1445
+ Iterator <String > iterator = jsonObject .keys ();
1446
+
1447
+ while (iterator .hasNext ())
1448
+ {
1449
+ String columnName = iterator .next ();
1450
+ String columnData = jsonObject .getString (columnName );
1451
+
1452
+ // Log.e(TAG, "insertData: name of column from json is: " + columnName);
1453
+ // Log.e(TAG, "insertData: value of column from json is: " + columnData);
1454
+
1455
+ this .addDataForTable (new DbData (columnName , columnData ));
1456
+ }
1457
+ }
1458
+
1459
+ this .insertDataWithTransaction (tableName , 5 );
1460
+ return true ;
1461
+ }
1462
+ catch (Exception e )
1463
+ {
1464
+ Log .e (TAG , "insertData: exception while inserting data using json:\n " );
1465
+ e .printStackTrace ();
1466
+
1467
+ return false ;
1468
+ }
1469
+ }
1470
+
1471
+ //#region COMMENTS FOR insertDataWithJsonAndTransaction method
1472
+ /**
1473
+ * 2019 Apr 25 - Thursday - 12:25 PM
1474
+ * insert data with json method
1475
+ *
1476
+ * this method will insert data using JSON Array or JSON Object
1477
+ * this method will user SQLite Database Transaction for inserting records in db
1478
+ *
1479
+ * @param tableName - name of the table to insert data in
1480
+ *
1481
+ * @param object - JSON Object or JSON Array of records and columns to be inserted
1482
+ *
1483
+ * @param tableColumnCount - Count of Number of columns for that table
1484
+ *
1485
+ * @return True or False for success for failure in inserting records
1486
+ **/
1487
+ //#endregion COMMENTS FOR insertDataWithJsonAndTransaction method
1488
+ public boolean insertDataWithJsonAndTransaction (String tableName , Object object , int tableColumnCount )
1489
+ {
1490
+ try
1491
+ {
1492
+ JSONArray jsonArray = new JSONArray ();
1493
+
1494
+ if (object == null )
1495
+ {
1496
+ Log .e (TAG , "insertData: object value cannot be null." );
1497
+ return false ;
1498
+ }
1499
+
1500
+ if (object instanceof JSONObject )
1501
+ {
1502
+ Iterator <String > iterator = ((JSONObject ) object ).keys ();
1503
+
1504
+ while (iterator .hasNext ())
1505
+ {
1506
+ String key = iterator .next ();
1507
+ jsonArray = ((JSONObject ) object ).getJSONArray (key );
1508
+
1509
+ // Log.e(TAG, "insertData: json array for " + key + " is: " + jsonArray);
1510
+ }
1511
+ }
1512
+ else if (object instanceof JSONArray )
1513
+ {
1514
+ jsonArray = (JSONArray ) object ;
1515
+ }
1516
+
1517
+ for (int i = 0 ; i < jsonArray .length (); i ++)
1518
+ {
1519
+ JSONObject jsonObject = jsonArray .getJSONObject (i );
1520
+ Iterator <String > iterator = jsonObject .keys ();
1521
+
1522
+ while (iterator .hasNext ())
1523
+ {
1524
+ String columnName = iterator .next ();
1525
+ String columnData = jsonObject .getString (columnName );
1526
+ this .addDataForTable (new DbData (columnName , columnData ));
1527
+ }
1528
+ }
1529
+
1530
+ this .insertDataWithTransaction (tableName , tableColumnCount );
1531
+ return true ;
1532
+ }
1533
+ catch (Exception e )
1534
+ {
1535
+ Log .e (TAG , "insertData: exception while inserting data using json:\n " );
1536
+ e .printStackTrace ();
1537
+
1538
+ return false ;
1539
+ }
1389
1540
}
1390
1541
1391
1542
//#region COMMENTS FOR updateData method
0 commit comments