fork(1) download
  1. package tw.com.flag.ch15_hellosqlite;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.os.Bundle;
  8. import android.support.v7.app.AppCompatActivity;
  9.  
  10. import android.widget.TextView;
  11.  
  12. public class MainActivity extends AppCompatActivity {
  13.  
  14. static final String db_name = "testDB"; //資料庫名稱
  15. static final String tb_name = "test"; //資料表名稱
  16. SQLiteDatabase db; //資料庫物件
  17.  
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22.  
  23.  
  24. //開啟或建立資料庫
  25. db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE, null);
  26.  
  27. String create = "CREATE TABLE IF NOT EXISTS" +
  28. tb_name + //資料表名稱
  29. "(name VARCHAR(32)," + //姓名欄位
  30. "phone VARCHAR(16)," + //電話欄位
  31. "email VARCHAR(64))"; //email欄位
  32.  
  33. db.execSQL(create); //建立資料表
  34.  
  35. Cursor c = db.rawQuery("SELECT * FROM " + tb_name, null);//查詢tb_name資料表中的所有資料
  36.  
  37. if (c.getCount() == 0) { //若無資料,則立即新增2筆資料
  38. addData("Flag Publishing Co.", "02-23962357", "service@flag.com.tw");
  39.  
  40. addData("PCDIY Magazine", "02-23214335", "service@pcdiy.com.tw");
  41.  
  42. c = db.rawQuery("SELECT * FROM" + tb_name, null);//重新查詢
  43. }
  44.  
  45. if (c.moveToFirst()) { //移到第1筆資料(若有資料才繼續)
  46.  
  47. String str = "總共有" + c.getCount() + "筆資料\n";
  48. str += "----\n";
  49.  
  50.  
  51. do { //逐筆讀出資料, 並串接成訊息字串
  52. str += "name:" + c.getString(0) + "\n";
  53. str += "phone:" + c.getString(1) + "\n";
  54. str += "email:" + c.getString(2) + "\n";
  55. str += "----\n";
  56. } while (c.moveToNext());//有下一筆資料迴圈就繼續
  57.  
  58. TextView txv = (TextView) findViewById(R.id.txv);
  59. txv.setText(str);//顯示訊息字串
  60. }
  61.  
  62. db.close();
  63. }
  64.  
  65. private void addData(String name, String phone, String email) {
  66.  
  67. ContentValues cv = new ContentValues(3);//建立含3個資料項目的物件
  68. cv.put("name", name);
  69. cv.put("phone", phone);
  70. cv.put("email",email);
  71.  
  72. db.insert(tb_name, null, cv);//把資料加到資料表
  73. }
  74.  
  75. }
  76.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:12: error: class MainActivity is public, should be declared in a file named MainActivity.java
public class MainActivity extends AppCompatActivity {
       ^
Main.java:3: error: package android.content does not exist
import android.content.ContentValues;
                      ^
Main.java:4: error: package android.content does not exist
import android.content.Context;
                      ^
Main.java:5: error: package android.database does not exist
import android.database.Cursor;
                       ^
Main.java:6: error: package android.database.sqlite does not exist
import android.database.sqlite.SQLiteDatabase;
                              ^
Main.java:7: error: package android.os does not exist
import android.os.Bundle;
                 ^
Main.java:8: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
                             ^
Main.java:10: error: package android.widget does not exist
import android.widget.TextView;
                     ^
Main.java:12: error: cannot find symbol
public class MainActivity extends AppCompatActivity {
                                  ^
  symbol: class AppCompatActivity
Main.java:16: error: cannot find symbol
    SQLiteDatabase db;  //?????
    ^
  symbol:   class SQLiteDatabase
  location: class MainActivity
Main.java:19: error: cannot find symbol
    protected void onCreate(Bundle savedInstanceState) {
                            ^
  symbol:   class Bundle
  location: class MainActivity
Main.java:18: error: method does not override or implement a method from a supertype
    @Override
    ^
Main.java:20: error: cannot find symbol
        super.onCreate(savedInstanceState);
        ^
  symbol:   variable super
  location: class MainActivity
Main.java:21: error: package R does not exist
        setContentView(R.layout.activity_main);
                        ^
Main.java:25: error: cannot find symbol
        db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE, null);
                                           ^
  symbol:   variable Context
  location: class MainActivity
Main.java:35: error: cannot find symbol
        Cursor c = db.rawQuery("SELECT * FROM " + tb_name, null);//??tb_name?????????
        ^
  symbol:   class Cursor
  location: class MainActivity
Main.java:58: error: cannot find symbol
            TextView txv = (TextView) findViewById(R.id.txv);
            ^
  symbol:   class TextView
  location: class MainActivity
Main.java:58: error: cannot find symbol
            TextView txv = (TextView) findViewById(R.id.txv);
                            ^
  symbol:   class TextView
  location: class MainActivity
Main.java:58: error: package R does not exist
            TextView txv = (TextView) findViewById(R.id.txv);
                                                    ^
Main.java:67: error: cannot find symbol
        ContentValues cv = new ContentValues(3);//???3????????
        ^
  symbol:   class ContentValues
  location: class MainActivity
Main.java:67: error: cannot find symbol
        ContentValues cv = new ContentValues(3);//???3????????
                               ^
  symbol:   class ContentValues
  location: class MainActivity
21 errors
stdout
Standard output is empty