Note that there are some explanatory texts on larger screens.

plurals
  1. POLogcat showing database entries as null values
    primarykey
    data
    text
    <p>I got the following code from a site and I too have done some modifications.When I print the database in the log cat I get the ID but I get author and title as null.Can someone please tell what might be the error? </p> <p>This is Book.java</p> <pre><code>package com.hmkcode.android.model; public class Book { private int id; private String title; private String author; public Book(){} public Book(String title, String author) { super(); this.title = title; this.author = author; } //getters &amp; setters // getting ID public int getId(){ return this.id; } // setting id public void setId(int id){ this.id = id; } // getting title public String getTitle(){ return this.title; } // setting title public void setTitle(String name){ this.title = title; } // getting authorname public String getAuthor(){ return this.author; } // setting authorname public void setAuthor(String phone_number){ this.author = author; } } </code></pre> <p>This is MySQLiteHelper.java</p> <pre><code> public class MySQLiteHelper extends SQLiteOpenHelper { // Database Version private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "BookDB"; public MySQLiteHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // SQL statement to create book table String CREATE_BOOK_TABLE = "CREATE TABLE books ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "title TEXT, "+ "author TEXT )"; // create books table db.execSQL(CREATE_BOOK_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Drop older books table if existed db.execSQL("DROP TABLE IF EXISTS books"); // create fresh books table this.onCreate(db); } //--------------------------------------------------------------------- /** * CRUD operations (create "add", read "get", update, delete) book + get all books + delete all books */ // Books table name private static final String TABLE_BOOKS = "books"; // Books Table Columns names private static final String KEY_ID = "id"; private static final String KEY_TITLE = "title"; private static final String KEY_AUTHOR = "author"; private static final String[] COLUMNS = {KEY_ID,KEY_TITLE,KEY_AUTHOR}; public void addBook(Book book){ // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put(KEY_TITLE, book.getTitle()); // get title values.put(KEY_AUTHOR, book.getAuthor()); // get author // 3. insert db.insert(TABLE_BOOKS, // table null, //nullColumnHack values); // key/value -&gt; keys = column names/ values = column values // 4. close db.close(); } public Book getBook(int id){ // 1. get reference to readable DB SQLiteDatabase db = this.getReadableDatabase(); // 2. build query Cursor cursor = db.query(TABLE_BOOKS, // a. table COLUMNS, // b. column names " id = ?", // c. selections new String[] { String.valueOf(id) }, // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit // 3. if we got results get the first one if (cursor != null) cursor.moveToFirst(); // 4. build book object Book book = new Book(); book.setId(Integer.parseInt(cursor.getString(0))); book.setTitle(cursor.getString(1)); book.setAuthor(cursor.getString(2)); // 5. return book return book; } // Get All Books public List&lt;Book&gt; getAllBooks() { List&lt;Book&gt; books = new LinkedList&lt;Book&gt;(); // 1. build the query String query = "SELECT * FROM " + TABLE_BOOKS; // 2. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query, null); // 3. go over each row, build book and add it to list Book book = null; if (cursor.moveToFirst()) { do { book = new Book(); book.setId(Integer.parseInt(cursor.getString(0))); book.setTitle(cursor.getString(1)); book.setAuthor(cursor.getString(2)); // Add book to books books.add(book); } while (cursor.moveToNext()); } // return books return books; } // Updating single book public int updateBook(Book book) { // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put("title", book.getTitle()); // get title values.put("author", book.getAuthor()); // get author // 3. updating row int i = db.update(TABLE_BOOKS, //table values, // column/value KEY_ID+" = ?", // selections new String[] { String.valueOf(book.getId()) }); //selection args // 4. close db.close(); return i; } // Deleting single book public void deleteBook(Book book) { // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. delete db.delete(TABLE_BOOKS, KEY_ID+" = ?", new String[] { String.valueOf(book.getId()) }); // 3. close db.close(); } } </code></pre> <p>This is MainActivity.java</p> <pre><code>public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MySQLiteHelper db = new MySQLiteHelper(this); /** * CRUD Operations * */ // add Books /*Log.d("Inserting: ", "Inserting all Books.."); db.addBook(new Book("Android Application Development Cookbook", "Wei Meng Lee")); db.addBook(new Book("Android Programming: The Big Nerd Ranch Guide", "Bill Phillips and Brian Hardy")); db.addBook(new Book("Learn Android App Development", "Wallace Jackson"));*/ //Reading and getting all books Log.d("Reading: ", "Reading all Books.."); List&lt;Book&gt; list = db.getAllBooks(); for (Book cn:list) { String log = "Id: "+cn.getId()+" ,Title: " + cn.getTitle() + " ,Author: " + cn.getAuthor(); // Writing Contacts to log Log.d("Name: ", log); // delete one book //db.deleteBook(list.get(3)); } } } </code></pre> <p>and this is what I get in my Logcat</p> <pre><code>12-17 12:18:01.498: D/Name:(506): Id: 29 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 33 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 36 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 41 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 42 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 43 ,Title: null ,Author: null 12-17 12:18:01.498: D/Name:(506): Id: 44 ,Title: null ,Author: null 12-17 12:18:01.508: D/Name:(506): Id: 45 ,Title: null ,Author: null 12-17 12:18:01.508: D/Name:(506): Id: 46 ,Title: null ,Author: null </code></pre> <p>Neglect that the id is not in order because I have deleted and added many entries.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload