Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

การใช้ AND Conjunctive Operator ใน Android SQLite

SQLite เป็น embedded database ใน Android ใช้งานได้เลยไม่ต้องเชื่อมต่อ JDBC/ODBC ตัวอย่างนี้แสดงการ query ด้วยเงื่อนไข AND

1. Layout (activity_main.xml)

มี EditText สำหรับ Name, Salary และปุ่ม Save, Refresh พร้อม ListView แสดงผล

2. MainActivity.java

public class MainActivity extends AppCompatActivity {
    Button save, refresh;
    EditText name, salary;
    ListView listView;
    DatabaseHelper helper;
    ArrayAdapter arrayAdapter;
    ArrayList array_list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        helper = new DatabaseHelper(this);
        array_list = helper.getAllContacts();
        
        name = findViewById(R.id.name);
        salary = findViewById(R.id.salary);
        listView = findViewById(R.id.listView);
        
        arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, array_list);
        listView.setAdapter(arrayAdapter);
        
        // Refresh button
        findViewById(R.id.refresh).setOnClickListener(v -> {
            array_list.clear();
            array_list.addAll(helper.getAllContacts());
            arrayAdapter.notifyDataSetChanged();
        });
        
        // Save button
        findViewById(R.id.save).setOnClickListener(v -> {
            if (!name.getText().toString().isEmpty() && !salary.getText().toString().isEmpty()) {
                if (helper.insert(name.getText().toString(), salary.getText().toString())) {
                    Toast.makeText(this, "Inserted", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(this, "NOT Inserted", Toast.LENGTH_LONG).show();
                }
            } else {
                name.setError("Enter NAME");
                salary.setError("Enter Salary");
            }
        });
    }
}

3. DatabaseHelper.java (จุดสำคัญ: Query ด้วย AND)

public ArrayList getAllContacts() {
    SQLiteDatabase db = this.getReadableDatabase();
    ArrayList array_list = new ArrayList<>();
    
    // Query: salary > 10 AND name เริ่มต้นด้วย "Sa"
    Cursor res = db.rawQuery(
        "SELECT * FROM " + CONTACTS_TABLE_NAME + 
        " WHERE salary > '10' AND name LIKE 'Sa%'", null);
    
    res.moveToFirst();
    while (!res.isAfterLast()) {
        array_list.add(res.getString(res.getColumnIndex("name")));
        res.moveToNext();
    }
    return array_list;
}

ผลลัพธ์

ListView แสดงเฉพาะชื่อที่ salary > 10 และชื่อขึ้นต้นด้วย "Sa"

รูปภาพตัวอย่าง UI ถูกละเว้น