SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
âv‚άô† «ì†ì£ «ðv!
݇†ó£Œ´ àì¡ âv‚άô†´‹
(SQ Lite) à†ªð£FòŠð†´ (⋪ð†
ªêŒòŠð†´) àœ÷¶. âv‚Î ¬ô† å¼
æŠð¡ «ê£˜v ªñ¡ªð£¼÷£°‹. â™ô£
«ì†ì£«ðvèœ «ð£¡Á âv‚Î C¡ªì‚v
ñŸÁ‹ ®ó£¡v Ý‚ê¬ù ÝîK‚°‹. âv‚Î
¬ô† ªêò™ð´õ 250 «èH G¬ùõè‹
«ð£¶ñ£ù¶.
âv‚άô† ðô Mîñ£ù «ì†ì£
õ¬èè¬÷ ÝîK‚Aø¶. Text, Intergers ñŸÁ‹
Real «ì†ì£ õ¬èèO™ ñFŠ¹è¬÷ «êI‚
èô£‹. ñŸø õ¬èèO™ ñFŠ¹è¬÷ «êI‚è
ô£‹. Ýù£™ ÜõŸ¬ø Text, Integers ñŸÁ‹
Real õ¬èè÷£è ñ£ŸP «êI‚è «õ‡´‹.
â™ô£ ݇†ó£Œ´ ªñ£¬ð™ ®¬õvèO
½‹ âv‚άô† GÁõŠð†®¼‚°‹. «ì†ì£
«ðC¬ù ݇†ó£Œ´ ÜŠO«èêQ™ ðò¡
𴈶‹«ð£¶ Üî¡ ªêò™ð£´ ñ†´Šðì
õ£ŒŠ¹œ÷¶. ݇†ó£Œ´ ÜŠO«èêQ™
«ì†ì£«ðC¬ù ðò¡ð´ˆ¶‹«ð£¶ H¡
ùEJ™ ªêò™ð´ñ£Á ðò¡ð´ˆî «õ‡
´‹. Þî¬ù AsyncTask ðò¡ð´ˆ¶õî¡
Íô‹ ꣈FòŠð´ˆîô£‹.
ÜŠO«èê¡ ãî£õ¶ «ì†ì£«ðC¬ù
à¼õ£‚Aù£™ ܶ DATA/data/App-NAME/
database/FILE NAME
Enviroment.getDirectory() â¡ø ªñˆî®¬ù
ðò¡ð´ˆ¶õî¡ Íô‹ APP-NAME â¡ð¶
â¡ù â¡Á ÜP‰¶ ªè£œ÷ô£‹. «ì†ì£
â¡ð¶ «ì†ì£«ðv GÁõŠð†´œ÷ Path
Ý°‹. File Name â¡ð¶  à¼õ£‚A»œ÷
«ì†ì£«ðC¡ ªðò˜ Ý°‹. Enviroment.get
DataDirectory() Ýù¶ ªð¼‹ð£½‹ âv®
裘®¬ù«ò (SD Card) «êI‚èŠð´‹ Þìñ£è
ªîKM‚°‹.
âv‚άô† «ì†ì£«ðC™ à¼õ£‚èŠ
ð´‹ îèõ™è¬÷ à¼õ£‚A«ò ÜŠO«èê¡
ñ†´«ñ ðò¡ð´ˆî º®»‹. ñŸø ÜŠO
«èê¡èÀ‹ ðò¡ð´ˆ¶‹ º¬øJ™ îèõ™
«êI‚è ContentProvider- J¬ù ðò¡ð´ˆî
«õ‡´‹. ÜŠO«èê¡èÀ‚ A¬ì«ò îèõ™
è¬÷ ðA˜õ¬î âv‚άô† ÝîKŠð F™¬ô.
݇†ó£Œ®™ «ì†ì£«ðC¬ù ðò¡
𴈶õ ݇†ó£Œ´ «ì†ì£«ðv
ªî£°Š¹ ðò¡ð´Aø¶. âv‚άô†®Ÿè£ù
A÷£vè¬÷(Class)ñ†´«ñðò¡ð´ˆ¶õ
݇†ó£Œ´ «ì†ì£«ðv âv‚άô†
ªî£°ŠH¬ù ðò¡ð´ˆîô£‹.
ÜŠO«èêQ™ «ì†ì£«ðC¬ù à¼õ£‚°
õ‹, ñ£Ÿø‹ ªêŒõ‹ SQLiteOpen
Helper êŠ A÷£v (Subclass) ðò¡ð´Aø¶.
getReadable Database() ñŸÁ‹
getWritableDatabase() ªñˆî´è¬÷
SQLiteOpenHelper êŠ A÷£CQ™ ðò¡ð´ˆ
¶õ¶ Íô‹ «ì†ì£«ðC¬ù read ñŸÁ‹
write º¬øJ™ ܬñˆFì º®»‹.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/re
s/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/searchText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/searchButton"
android:text="Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="search"/>
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/r
es/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8px">
<TextView
android:id="@+id/firstName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/lastName"
android:layout_marginLeft="6px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/firstName"/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/firstName"/>
</RelativeLayout>
Gó™-1
Gó™-2
H¬óñK WJ¬ù ðò¡ð´ˆ¶õ à¼
õ£‚èŠð´‹ «ìHO™ ä® (Id) ñFŠ¹ ðò¡
ð´ˆîŠð´Aø¶.
݇†ó£Œ®™ âv‚άô† ðò¡ð´ˆ¶õ
 âv‚άô† «ì†ì£«ðv â¡ð¶
Ü®Šð¬ì A÷£v Ý°‹. âv‚άô†
«ì†ì£ «ðC™ insert(), update(),delete() ñŸ
Á‹ execSQL () ªñˆî´èœ ðò¡ð´A¡
øù. execSQL() Íô‹ «î¬õò£ù °õK
J¬ù (Query) ªêò™ð´ˆî º®»‹.
contentvalues â¡ø ÝŠªü‚† Íô‹
W ñŸÁ‹ ÜîŸè£ù ñFŠH¬ù ªè£´‚è
º®»‹.
W/«õ™Îv ñFŠ¹è¬÷ ޡꘆ
ñŸÁ‹ÜŠ«ì†ªêò™èO™ðò¡ð´ˆî
º®»‹. rawQuery() ªñˆî† Íô‹ âv
‚Îâ™ v«ì† ªñ¡† ñŸÁ‹ ÜŠO
«èê¡ ªêò™ð´‹«ð£¶ ñFŠ¹è¬÷
ªè£´‚°‹ º¬øJ™ (Dynamic Data)
ªè£´‚è º®»‹.
rawQuery() ðò¡ð´ˆ¶õ¬î ꣡
ø£è 𣘊«ð£‹.
Cursor Cursor=getReadableDatabase().rawQuerry
("select*from to do where-id=?",newstring[]{id})
Ü´ˆîî£è Query() ªñˆî† ªè£´‚°‹
«ð£¶ â¡ù ñFŠ¹è¬÷ ªè£´‚è «õ‡´‹
â¡Á 𣘊«ð£‹.
stringdbname-°õK ðò¡ð´ˆ¶‹ «ìHO¡
ªðò˜.
int[] column Names- â‰î è£ô‹è¬÷
(Column) ðò¡ð´ˆî «ð£A«ø£‹ â¡ðî¬ù
°PŠð null ðò¡ð´ˆFù£™ â™ô£ è£ô‹
è¬÷»‹ ªðø º®»‹.
String Where Clause- â¡ù îèõ™è¬÷
ªðø «õ‡´‹ â¡ðî¬ù °P‚è ðò¡ð´
Aø¶.
String[]groupby -
String[]having
String[]orderby
«ì†ì£«ðv °õKJ¬ù ðò¡ð´ˆ¶‹
º¬øJ¬ù ꣡ø£è 𣘊«ð£‹.
returndatabase.Query(DATABASE-TABLE,
new string[] {KEY-ROWID, KEY-CATEGORY,
KEY-SUMMARY, KEY-DESCRIPTION},
null, null, null, null, null);
°õK ªêò™ð†ì¾ì¡ îèõ™è¬÷ è˜ê˜
õ®M™ ªðŸÁ . è˜êK™ àœ÷ îèõ™
èO¡ â‡E‚¬è¬ò ÜPõ getCount()
ªñˆî† ðò¡ð´Aø¶. Þî¬ù îMó è˜êK™
moveToFirst() ñŸÁ‹ moveTo Next() ªñˆ
î†èœ ðò¡ð´ˆî º®»‹. IS AfterLast()
ªñˆî† Íô‹ îèõ™ 㶋 àœ÷î£ â¡ð
î¬ù ÜPò º®»‹.
Lv† MÎM™ (List view) îèõ™è¬÷ ªðÁ
õ C‹Hœ è˜ê˜ Ü죊
ìK¬ù (Simple Cursor Adapter)
è˜êK™ ðò¡ð´ˆîô£‹. âv‚Î
¬ô† ðò¡ð´ˆF ꣡Á å¡
P¬ù 𣘊«ð£‹. îèõ™è¬÷
«ì†ì£«ðC™ «êIŠð¶ âš
õ£Á â¡Á‹, «êIˆî îèõ¬ô
F¬óJ™ «î´õîŸè£ù Gó™è¬÷
»‹ ñŸÁ‹ èñ£‡† ¬ô¡ Ç™
ðò¡ð´ˆF îèõ™è¬÷ 𣘬õ
Jì º®»‹.
¹Fî£è Hó£ªü‚† å¡P¬ù
ªî£ìƒA Üî¬ìò ªðòK¬ù
EmployeeDirectory3 â¡Á‹, Build
Target- J¬ù ݇†ó£Œ´ 2.2 â¡Á‹ «ð‚
«èx ªðòK¬ù Simple Employee Directory â¡
Á‹ Ý‚®M†® ªðòK¬ù employee list â¡
Á‹ ªè£´‚è «õ‡´‹.
Main.xml-L™ hQò˜ «ôܾ† àì¡
⮆ ªì‚v† ñŸÁ‹ ð†ì¡ ðò¡ð´ˆ¶
«õ£‹. Main.xml-Ÿè£ù F¬ó ðì‹ 1 ñŸÁ‹
Gó™ 1-™ ªè£´‚èŠð†´œ÷¶.
⮆ ªì‚v†®™ ªè£´‚°‹ ªðòK¬ù
«î´‹«ð£¶ M¬ì Lv†®™ A¬ì‚°‹.
Lv†®¡ ܬñŠH¬ù employee-list-item.
xml â¡ø ç¬ðL™ ªè£´‚èô£‹. employee-
list-item.xml-¡ Gó™ 2 «ð£¡Á Þ¼‚°‹.
«ì†ì£«ðC¬ù ðò¡ð´ˆ¶õ Data
baseHelper.java â¡ø A÷£v ç¬ðL¬ù à¼
õ£‚°«õ£‹. Gó™ -3 Íô‹ employee-directory
â¡ø «ì†ì£«ðv à¼õ£‚èŠð´ Aø¶. H¡
ù˜ -id,Firstname, lastname, title, office phone,
cellphone, email ñŸÁ‹ manage Id çd™´è¬÷
ªè£‡´ Employee «ìHœ à¼õ£‚èŠð´‹.
db.exeSQL(SQL); Íô‹
âv‚Î♽‚° ãŸø
ªêò™ ï¬ìªðÁ‹.
ContentValues Values
=new ContentValues() Valu
es â¡ð¶ îèõ¬ô «ìH
O™ ¹°ˆ¶õ ðò¡
ð´Aø¶.
values.put("firstname",
Ramkumar"),
values.put("lastname",
"lakshminarayanan");
Ý¡†ó£Œ´ -2
Þ󣋰ñ£˜ ªô†²Iï£ó£òí¡
10
ðì‹-1
ðì‹-2
package samples.employeedirectory;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME =
"employee_directory";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
/*
* Create the employee table and populate it
with sample data.
*/
String sql = "CREATE TABLE IF NOT EXISTS
employee (" +
"_id INTEGER PRIMARY KEY
AUTOINCREMENT, " +
"firstName TEXT, " +
"lastName TEXT, " +
"title TEXT, " +
"officePhone TEXT, " +
"cellPhone TEXT, " +
"email TEXT, " +
"managerId INTEGER)";
db.execSQL(sql);
ContentValues values = new ContentValues();
values.put("firstName", "Ramkumar");
values.put("lastName", "Lakshminarayanan");
values.put("title", "CEO");
values.put("officePhone", "617-219-2001");
values.put("cellPhone", "617-456-7890");
values.put("email", "ramkumar@email.com");
db.insert("employee", "lastName", values);
values.put("firstName", "Sidarthan");
values.put("lastName", "Swaminathan");
values.put("title", "VP Engineering");
values.put("officePhone", "617-219-3333");
values.put("cellPhone", "781-444-2222");
values.put("email", "sid@email.com");
values.put("managerId", "1");
db.insert("employee", "lastName", values);
values.put("firstName", "Mathivannan");
values.put("lastName", "N");
values.put("title", "VP Sales");
values.put("officePhone", "617-219-2002");
values.put("cellPhone", "987-654-3210");
values.put("email", "mathi@email.com");
values.put("managerId", "1");
db.insert("employee", "lastName", values);
values.put("firstName", "Ramarajan");
values.put("lastName", "Palaniappan");
values.put("title", "VP Marketing");
values.put("officePhone", "617-219-2003");
values.put("cellPhone", "987-654-7777");
values.put("email", "ljordan@email.com");
values.put("managerId", "2");
db.insert("employee", "lastName", values);
values.put("firstName", "Christophe");
values.put("lastName", "Jayaraj");
values.put("title", "Evangelist");
values.put("officePhone", "617-219-0000");
values.put("cellPhone", "617-666-7777");
values.put("email", "christ@adobe.com");
values.put("managerId", "2");
db.insert("employee", "lastName", values);
values.put("firstName", "Chinnasamy");
values.put("lastName", "Murugan");
values.put("title", "Director Engineering");
values.put("officePhone", "617-612-0987");
values.put("cellPhone", "617-123-9876");
values.put("email", "murugan@email.com");
values.put("managerId", "2");
db.insert("employee", "lastName", values);
values.put("firstName", "Jaya");
values.put("lastName", "Ramani");
values.put("title", "Lead Architect");
values.put("officePhone", "617-444-1122");
values.put("cellPhone", "617-555-3344");
values.put("email", "mtaylor@email.com");
values.put("managerId", "2");
db.insert("employee", "lastName", values);
}
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS
employees");
onCreate(db);
}
values.put("title","CEO");
values.put("officephone","617-219-2001");
values.put("cellphone","617-456-7890");
values.put("email","ramkumar@email.com");
db.insert("employee", "lastname",values);
îèõ™èœ «ìHO™ ¹°ˆîŠð´‹, Þî¬ù
«ð£¡Á ñŸø îèõ™èÀ‹
¹°ˆîŠð†´œ÷¶. ÜŠA«ó† ªñˆî† Íô‹
«ìHœ ®ó£Š ªêŒòŠð´‹. H¡ù˜ ¹Fò
«ìHœ à¼õ£‚èŠ ð´‹.
Employee List.Java ç¬ð™ Íô‹ «ìHO™
îèõL¬ù «î® F¬óJ™ 裇H‚è «ð£A
«ø£‹.
db=(newDatabaseHelper(this)
getwritableDatabase();
databaseHelper ç¬ðL™ à¼õ£‚Aò
«ì†ì£«ðC¬ù Þƒ° ðòùð´ˆî «ð£A
«ø£‹. searchText ñŸÁ‹ employeelist -J¬ù
main.xml àì¡ Þ¬íŠ¹ ãŸð´ˆî
searchText=(EditText)findviewById
(R.id.searchText)
package samples.employeedirectory;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class EmployeeList extends Activity {
protected EditText searchText;
protected SQLiteDatabase db;
protected Cursor cursor;
protected ListAdapter adapter;
protected ListView employeeList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db = (new
DatabaseHelper(this)).getWritableDatabase();
searchText = (EditText) findViewById
(R.id.searchText);
employeeList = (ListView) findViewById
(R.id.list);
}
public void search(View view) {
// || is the concatenation operation in SQLite
cursor = db.rawQuery("SELECT _id,
firstName, lastName, title FROM employee WHERE
firstName || ' ' || lastName LIKE ?",
new String[]{"%" +
searchText.getText().toString() + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.employee_list_item,
cursor,
new String[] {"firstName",
"lastName", "title"},
new int[] {R.id.firstName,
R.id.lastName, R.id.title});
employeeList.setAdapter(adapter);
}
- ªî£ì¼‹
ðì‹-3 ðì‹-4
ðì‹-5
Gó™-4
employeelist=(Listview)findviewById(R.id.
list);
main.xml ç¬ðL™ ð†ì¬ù à¼õ£‚Aò
«ð£¶
android.onclick="search" â¡Á ðò¡ð´ˆF
Þ¼‰«î£‹. Search â¡ù ªêò™ðì «õ‡´‹
â¡ðî¬ù employeelist- ™ õ¬óòÁˆ¶ àœ
«÷£‹. è˜ê˜ Íô‹ «ì†ì£«ðC™ àœ÷
«ìHœ îèõ™ ªðøŠð´‹.
C‹Hœ è˜ê˜ Üì£Šì˜ Íô‹ è˜ê˜
àœ÷ îèõ¬ô ªðŸÁ employee list -¡ Ü죊
ì˜ Ýè ܬñŠð¶ Íô‹  «î´‹ îèõ
½‚è£ù M¬ì F¬óJ™ «î£¡Á‹. (ðì‹2)
݇†ó£Œ´ âv®«èJ¬ù D:androidt
â¡ø ç«ð£™ìK™ GÁM àœ«÷¡. âv‚Î
¬ô†®¬ù èñ£‡† ¬ô¡ Ç™ Ýù adh
Íô‹ «êI‚èŠð†ì îèõL¬ù ÜPòô£‹.
emulatorshell -ä Ü‚êv ªêŒò
D:androidt platform-tools â¡ø
ç«ð£™ìK™ adb-s emulator-5554 shell â¡Á
ªè£´‚è «õ‡´‹. ꣡P¡ Íô‹
à¼õ£‚èŠð†ì «ì†ì£ «ðv
datadatasamples.employeedirectory-J™
Þ¼‚°‹. (ðì‹3)
Þ‰î ¬ìó‚ìKJ™ SQlite3 employee-dire
ctory â¡Á ªè£´ˆî£™ âv‚Î ¬ô†®¬ù
ðò¡ð´ˆî º®»‹. ÜŠO«èê¡ Íô‹ à¼
õ£‚A»œ÷ «ì†ì£«ðC¡ ªðò˜ employee-
directory â¡ð‹. âv‚άô† ®¬ù
ªî£ìƒ°õ
SQLite3 employee-directory â¡Á ªè£´ˆ
, âv‚άô† ªêò™ðì ªî£ìƒ°‹.
(ðì‹ 4)
SQLite>.header on
SQLite>.mode Column â¡Á ªè£´ˆî H¡
ù˜ SQLite>Select*from employees; â¡Á
ªè£´ˆî£™ ÜŠO«èê¡ Íô‹ «êIˆî
îèõ¬ô F¬óJ™ è£íô£‹. (ðì‹ 5)

Contenu connexe

Tendances

「レガシーコード」とはいったい?
「レガシーコード」とはいったい?「レガシーコード」とはいったい?
「レガシーコード」とはいったい?Hiroyuki Ohnaka
 
Using many languages in single Android App (in tamil)
Using many languages in single Android App (in tamil)Using many languages in single Android App (in tamil)
Using many languages in single Android App (in tamil)Dr. Ramkumar Lakshminarayanan
 
Sentinel Hardware Keys
Sentinel Hardware KeysSentinel Hardware Keys
Sentinel Hardware KeysJong-hyeok Kim
 
Code Template with EA
Code Template with EACode Template with EA
Code Template with EAYoungSu Son
 
Написание DSL в Perl
Написание DSL в PerlНаписание DSL в Perl
Написание DSL в Perlmayperl
 
Readme ko
Readme koReadme ko
Readme koThata22
 
241 Ch
241 Ch241 Ch
241 Chanjaan
 
Apport de la simulation sur maquette adaptative à la démarche de conception d...
Apport de la simulation sur maquette adaptative à la démarche de conception d...Apport de la simulation sur maquette adaptative à la démarche de conception d...
Apport de la simulation sur maquette adaptative à la démarche de conception d...Benoit LANGARD - PhD
 
C++编程实践
C++编程实践C++编程实践
C++编程实践Bin Cai
 

Tendances (20)

Sample Add Application uisng Android (in tamil)
Sample Add Application uisng Android (in tamil)Sample Add Application uisng Android (in tamil)
Sample Add Application uisng Android (in tamil)
 
Notification in Android App (in tamil)
Notification in Android App (in tamil)Notification in Android App (in tamil)
Notification in Android App (in tamil)
 
「レガシーコード」とはいったい?
「レガシーコード」とはいったい?「レガシーコード」とはいったい?
「レガシーコード」とはいったい?
 
jQuery
jQueryjQuery
jQuery
 
Installing Eclipse (in tamil)
Installing Eclipse (in tamil)Installing Eclipse (in tamil)
Installing Eclipse (in tamil)
 
Using many languages in single Android App (in tamil)
Using many languages in single Android App (in tamil)Using many languages in single Android App (in tamil)
Using many languages in single Android App (in tamil)
 
Intro. to JavaScript
Intro. to JavaScriptIntro. to JavaScript
Intro. to JavaScript
 
Jess
JessJess
Jess
 
Sentinel Hardware Keys
Sentinel Hardware KeysSentinel Hardware Keys
Sentinel Hardware Keys
 
Data Storage in Android App
Data Storage in Android AppData Storage in Android App
Data Storage in Android App
 
Code Template with EA
Code Template with EACode Template with EA
Code Template with EA
 
jQuery Tutorial
jQuery TutorialjQuery Tutorial
jQuery Tutorial
 
Написание DSL в Perl
Написание DSL в PerlНаписание DSL в Perl
Написание DSL в Perl
 
Readme ko
Readme koReadme ko
Readme ko
 
241 Ch
241 Ch241 Ch
241 Ch
 
Apport de la simulation sur maquette adaptative à la démarche de conception d...
Apport de la simulation sur maquette adaptative à la démarche de conception d...Apport de la simulation sur maquette adaptative à la démarche de conception d...
Apport de la simulation sur maquette adaptative à la démarche de conception d...
 
Bhale chance
Bhale chanceBhale chance
Bhale chance
 
Capitulo 27 - Corriente y Resistencia
Capitulo 27 - Corriente y ResistenciaCapitulo 27 - Corriente y Resistencia
Capitulo 27 - Corriente y Resistencia
 
C++编程实践
C++编程实践C++编程实践
C++编程实践
 
Capitulo 28 - Circuitos Corriente Directa
Capitulo 28 - Circuitos Corriente DirectaCapitulo 28 - Circuitos Corriente Directa
Capitulo 28 - Circuitos Corriente Directa
 

En vedette

En vedette (13)

Sono - Como dormir melhor?
Sono - Como dormir melhor?Sono - Como dormir melhor?
Sono - Como dormir melhor?
 
Herpes Disease
Herpes DiseaseHerpes Disease
Herpes Disease
 
Statystyka po ludzku
Statystyka po ludzkuStatystyka po ludzku
Statystyka po ludzku
 
Quimica 1 em
Quimica 1 emQuimica 1 em
Quimica 1 em
 
áGua vania
áGua vaniaáGua vania
áGua vania
 
I 726 ready-stock
I 726 ready-stockI 726 ready-stock
I 726 ready-stock
 
3Com 3C905BTX13
3Com 3C905BTX133Com 3C905BTX13
3Com 3C905BTX13
 
4 Dicas para aumentar as vendas e o numero de clientes
4 Dicas para aumentar as vendas e o numero de clientes4 Dicas para aumentar as vendas e o numero de clientes
4 Dicas para aumentar as vendas e o numero de clientes
 
El internet en las cosas
El internet en las cosasEl internet en las cosas
El internet en las cosas
 
Reader profile
Reader profileReader profile
Reader profile
 
Gestão ambiental na indústria
Gestão ambiental na indústriaGestão ambiental na indústria
Gestão ambiental na indústria
 
Mona lisa
Mona lisaMona lisa
Mona lisa
 
Dicas para Estudo
Dicas para EstudoDicas para Estudo
Dicas para Estudo
 

Plus de Dr. Ramkumar Lakshminarayanan (17)

IT security awareness
IT security awarenessIT security awareness
IT security awareness
 
Basics of IT security
Basics of IT securityBasics of IT security
Basics of IT security
 
IT Security Awareness Posters
IT Security Awareness PostersIT Security Awareness Posters
IT Security Awareness Posters
 
Normalisation revision
Normalisation revisionNormalisation revision
Normalisation revision
 
Windows mobile programming
Windows mobile programmingWindows mobile programming
Windows mobile programming
 
Concurrency control
Concurrency controlConcurrency control
Concurrency control
 
Web technology today
Web technology todayWeb technology today
Web technology today
 
Php Tutorial
Php TutorialPhp Tutorial
Php Tutorial
 
Phonegap for Android
Phonegap for AndroidPhonegap for Android
Phonegap for Android
 
Create and Sell Android App (in tamil)
Create and Sell Android App (in tamil)Create and Sell Android App (in tamil)
Create and Sell Android App (in tamil)
 
Android Tips (Tamil)
Android Tips (Tamil)Android Tips (Tamil)
Android Tips (Tamil)
 
Android Animation (in tamil)
Android Animation (in tamil)Android Animation (in tamil)
Android Animation (in tamil)
 
Single Touch event view in Android (in tamil)
Single Touch event view in Android (in tamil)Single Touch event view in Android (in tamil)
Single Touch event view in Android (in tamil)
 
Android Application using seekbar (in tamil)
Android Application using seekbar (in tamil)Android Application using seekbar (in tamil)
Android Application using seekbar (in tamil)
 
GPS in Android (in tamil)
GPS in Android (in tamil)GPS in Android (in tamil)
GPS in Android (in tamil)
 
Part 7
Part 7Part 7
Part 7
 
Layout Object in Android App
Layout Object in Android AppLayout Object in Android App
Layout Object in Android App
 

SQLite in Android App (in tamil)

  • 1. âv‚άô† «ì†ì£ «ðv! ݇†ó£Œ´ àì¡ âv‚άô†´‹ (SQ Lite) à†ªð£FòŠð†´ (â‹ªð† ªêŒòŠð†´) àœ÷¶. âv‚Î ¬ô† å¼ æŠð¡ «ê£˜v ªñ¡ªð£¼÷£°‹. â™ô£ «ì†ì£«ðvèœ «ð£¡Á âv‚Î C¡ªì‚v ñŸÁ‹ ®ó£¡v Ý‚ê¬ù ÝîK‚°‹. âv‚Î ¬ô† ªêò™ð´õ 250 «èH G¬ùõè‹ «ð£¶ñ£ù¶. âv‚άô† ðô Mîñ£ù «ì†ì£ õ¬èè¬÷ ÝîK‚Aø¶. Text, Intergers ñŸÁ‹ Real «ì†ì£ õ¬èèO™ ñFŠ¹è¬÷ «êI‚ èô£‹. ñŸø õ¬èèO™ ñFŠ¹è¬÷ «êI‚è ô£‹. Ýù£™ ÜõŸ¬ø Text, Integers ñŸÁ‹ Real õ¬èè÷£è ñ£ŸP «êI‚è «õ‡´‹. â™ô£ ݇†ó£Œ´ ªñ£¬ð™ ®¬õvèO ½‹ âv‚άô† GÁõŠð†®¼‚°‹. «ì†ì£ «ðC¬ù ݇†ó£Œ´ ÜŠO«èêQ™ ðò¡ 𴈶‹«ð£¶ Üî¡ ªêò™ð£´ ñ†´Šðì õ£ŒŠ¹œ÷¶. ݇†ó£Œ´ ÜŠO«èêQ™ «ì†ì£«ðC¬ù ðò¡ð´ˆ¶‹«ð£¶ H¡ ùEJ™ ªêò™ð´ñ£Á ðò¡ð´ˆî «õ‡ ´‹. Þî¬ù AsyncTask ðò¡ð´ˆ¶õî¡ Íô‹ ꣈FòŠð´ˆîô£‹. ÜŠO«èê¡ ãî£õ¶ «ì†ì£«ðC¬ù à¼õ£‚Aù£™ ܶ DATA/data/App-NAME/ database/FILE NAME Enviroment.getDirectory() â¡ø ªñˆî®¬ù ðò¡ð´ˆ¶õî¡ Íô‹ APP-NAME â¡ð¶ â¡ù â¡Á ÜP‰¶ ªè£œ÷ô£‹. «ì†ì£ â¡ð¶ «ì†ì£«ðv GÁõŠð†´œ÷ Path Ý°‹. File Name â¡ð¶  à¼õ£‚A»œ÷ «ì†ì£«ðC¡ ªðò˜ Ý°‹. Enviroment.get DataDirectory() Ýù¶ ªð¼‹ð£½‹ âv® 裘®¬ù«ò (SD Card) «êI‚èŠð´‹ Þìñ£è ªîKM‚°‹. âv‚άô† «ì†ì£«ðC™ à¼õ£‚èŠ ð´‹ îèõ™è¬÷ à¼õ£‚A«ò ÜŠO«èê¡ ñ†´«ñ ðò¡ð´ˆî º®»‹. ñŸø ÜŠO «èê¡èÀ‹ ðò¡ð´ˆ¶‹ º¬øJ™ îèõ™ «êI‚è ContentProvider- J¬ù ðò¡ð´ˆî «õ‡´‹. ÜŠO«èê¡èÀ‚ A¬ì«ò îèõ™ è¬÷ ðA˜õ¬î âv‚άô† ÝîKŠð F™¬ô. ݇†ó£Œ®™ «ì†ì£«ðC¬ù ðò¡ 𴈶õ ݇†ó£Œ´ «ì†ì£«ðv ªî£°Š¹ ðò¡ð´Aø¶. âv‚άô†®Ÿè£ù A÷£vè¬÷(Class)ñ†´«ñðò¡ð´ˆ¶õ ݇†ó£Œ´ «ì†ì£«ðv âv‚άô† ªî£°ŠH¬ù ðò¡ð´ˆîô£‹. ÜŠO«èêQ™ «ì†ì£«ðC¬ù à¼õ£‚° õ‹, ñ£Ÿø‹ ªêŒõ‹ SQLiteOpen Helper êŠ A÷£v (Subclass) ðò¡ð´Aø¶. getReadable Database() ñŸÁ‹ getWritableDatabase() ªñˆî´è¬÷ SQLiteOpenHelper êŠ A÷£CQ™ ðò¡ð´ˆ ¶õ¶ Íô‹ «ì†ì£«ðC¬ù read ñŸÁ‹ write º¬øJ™ ܬñˆFì º®»‹. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re s/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/searchText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:id="@+id/searchButton" android:text="Search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="search"/> </LinearLayout> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/r es/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="8px"> <TextView android:id="@+id/firstName" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/lastName" android:layout_marginLeft="6px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/firstName"/> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/firstName"/> </RelativeLayout> Gó™-1 Gó™-2
  • 2. H¬óñK WJ¬ù ðò¡ð´ˆ¶õ ༠õ£‚èŠð´‹ «ìHO™ ä® (Id) ñFŠ¹ ðò¡ ð´ˆîŠð´Aø¶. ݇†ó£Œ®™ âv‚άô† ðò¡ð´ˆ¶õ  âv‚άô† «ì†ì£«ðv â¡ð¶ Ü®Šð¬ì A÷£v Ý°‹. âv‚άô† «ì†ì£ «ðC™ insert(), update(),delete() ñŸ Á‹ execSQL () ªñˆî´èœ ðò¡ð´A¡ øù. execSQL() Íô‹ «î¬õò£ù °õK J¬ù (Query) ªêò™ð´ˆî º®»‹. contentvalues â¡ø ÝŠªü‚† Íô‹ W ñŸÁ‹ ÜîŸè£ù ñFŠH¬ù ªè£´‚è º®»‹. W/«õ™Îv ñFŠ¹è¬÷ ޡꘆ ñŸÁ‹ÜŠ«ì†ªêò™èO™ðò¡ð´ˆî º®»‹. rawQuery() ªñˆî† Íô‹ âv ‚Îâ™ v«ì† ªñ¡† ñŸÁ‹ ÜŠO «èê¡ ªêò™ð´‹«ð£¶ ñFŠ¹è¬÷ ªè£´‚°‹ º¬øJ™ (Dynamic Data) ªè£´‚è º®»‹. rawQuery() ðò¡ð´ˆ¶õ¬î ꣡ ø£è 𣘊«ð£‹. Cursor Cursor=getReadableDatabase().rawQuerry ("select*from to do where-id=?",newstring[]{id}) Ü´ˆîî£è Query() ªñˆî† ªè£´‚°‹ «ð£¶ â¡ù ñFŠ¹è¬÷ ªè£´‚è «õ‡´‹ â¡Á 𣘊«ð£‹. stringdbname-°õK ðò¡ð´ˆ¶‹ «ìHO¡ ªðò˜. int[] column Names- â‰î è£ô‹è¬÷ (Column) ðò¡ð´ˆî «ð£A«ø£‹ â¡ðî¬ù °PŠð null ðò¡ð´ˆFù£™ â™ô£ è£ô‹ è¬÷»‹ ªðø º®»‹. String Where Clause- â¡ù îèõ™è¬÷ ªðø «õ‡´‹ â¡ðî¬ù °P‚è ðò¡ð´ Aø¶. String[]groupby - String[]having String[]orderby «ì†ì£«ðv °õKJ¬ù ðò¡ð´ˆ¶‹ º¬øJ¬ù ꣡ø£è 𣘊«ð£‹. returndatabase.Query(DATABASE-TABLE, new string[] {KEY-ROWID, KEY-CATEGORY, KEY-SUMMARY, KEY-DESCRIPTION}, null, null, null, null, null); °õK ªêò™ð†ì¾ì¡ îèõ™è¬÷ è˜ê˜ õ®M™ ªðŸÁ . è˜êK™ àœ÷ îèõ™ èO¡ â‡E‚¬è¬ò ÜPõ getCount() ªñˆî† ðò¡ð´Aø¶. Þî¬ù îMó è˜êK™ moveToFirst() ñŸÁ‹ moveTo Next() ªñˆ î†èœ ðò¡ð´ˆî º®»‹. IS AfterLast() ªñˆî† Íô‹ îèõ™ 㶋 àœ÷î£ â¡ð î¬ù ÜPò º®»‹. Lv† MÎM™ (List view) îèõ™è¬÷ ªðÁ õ C‹Hœ è˜ê˜ Ü죊 ìK¬ù (Simple Cursor Adapter) è˜êK™ ðò¡ð´ˆîô£‹. âv‚Î ¬ô† ðò¡ð´ˆF ꣡Á å¡ P¬ù 𣘊«ð£‹. îèõ™è¬÷ «ì†ì£«ðC™ «êIŠð¶ âš õ£Á â¡Á‹, «êIˆî îèõ¬ô F¬óJ™ «î´õîŸè£ù Gó™è¬÷ »‹ ñŸÁ‹ èñ£‡† ¬ô¡ Ç™ ðò¡ð´ˆF îèõ™è¬÷ 𣘬õ Jì º®»‹. ¹Fî£è Hó£ªü‚† å¡P¬ù ªî£ìƒA Üî¬ìò ªðòK¬ù EmployeeDirectory3 â¡Á‹, Build Target- J¬ù ݇†ó£Œ´ 2.2 â¡Á‹ «ð‚ «èx ªðòK¬ù Simple Employee Directory â¡ Á‹ Ý‚®M†® ªðòK¬ù employee list â¡ Á‹ ªè£´‚è «õ‡´‹. Main.xml-L™ hQò˜ «ôܾ† àì¡ â®† ªì‚v† ñŸÁ‹ ð†ì¡ ðò¡ð´ˆ¶ «õ£‹. Main.xml-Ÿè£ù F¬ó ðì‹ 1 ñŸÁ‹ Gó™ 1-™ ªè£´‚èŠð†´œ÷¶. ⮆ ªì‚v†®™ ªè£´‚°‹ ªðòK¬ù «î´‹«ð£¶ M¬ì Lv†®™ A¬ì‚°‹. Lv†®¡ ܬñŠH¬ù employee-list-item. xml â¡ø ç¬ðL™ ªè£´‚èô£‹. employee- list-item.xml-¡ Gó™ 2 «ð£¡Á Þ¼‚°‹. «ì†ì£«ðC¬ù ðò¡ð´ˆ¶õ Data baseHelper.java â¡ø A÷£v ç¬ðL¬ù ༠õ£‚°«õ£‹. Gó™ -3 Íô‹ employee-directory â¡ø «ì†ì£«ðv à¼õ£‚èŠð´ Aø¶. H¡ ù˜ -id,Firstname, lastname, title, office phone, cellphone, email ñŸÁ‹ manage Id çd™´è¬÷ ªè£‡´ Employee «ìHœ à¼õ£‚èŠð´‹. db.exeSQL(SQL); Íô‹ âv‚Î♽‚° ãŸø ªêò™ ï¬ìªðÁ‹. ContentValues Values =new ContentValues() Valu es â¡ð¶ îèõ¬ô «ìH O™ ¹°ˆ¶õ ðò¡ ð´Aø¶. values.put("firstname", Ramkumar"), values.put("lastname", "lakshminarayanan"); Ý¡†ó£Œ´ -2 Þ󣋰ñ£˜ ªô†²Iï£ó£òí¡ 10 ðì‹-1 ðì‹-2
  • 3. package samples.employeedirectory; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "employee_directory"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { /* * Create the employee table and populate it with sample data. */ String sql = "CREATE TABLE IF NOT EXISTS employee (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + "firstName TEXT, " + "lastName TEXT, " + "title TEXT, " + "officePhone TEXT, " + "cellPhone TEXT, " + "email TEXT, " + "managerId INTEGER)"; db.execSQL(sql); ContentValues values = new ContentValues(); values.put("firstName", "Ramkumar"); values.put("lastName", "Lakshminarayanan"); values.put("title", "CEO"); values.put("officePhone", "617-219-2001"); values.put("cellPhone", "617-456-7890"); values.put("email", "ramkumar@email.com"); db.insert("employee", "lastName", values); values.put("firstName", "Sidarthan"); values.put("lastName", "Swaminathan"); values.put("title", "VP Engineering"); values.put("officePhone", "617-219-3333"); values.put("cellPhone", "781-444-2222"); values.put("email", "sid@email.com"); values.put("managerId", "1"); db.insert("employee", "lastName", values); values.put("firstName", "Mathivannan"); values.put("lastName", "N"); values.put("title", "VP Sales"); values.put("officePhone", "617-219-2002"); values.put("cellPhone", "987-654-3210"); values.put("email", "mathi@email.com"); values.put("managerId", "1"); db.insert("employee", "lastName", values); values.put("firstName", "Ramarajan"); values.put("lastName", "Palaniappan"); values.put("title", "VP Marketing"); values.put("officePhone", "617-219-2003"); values.put("cellPhone", "987-654-7777"); values.put("email", "ljordan@email.com"); values.put("managerId", "2"); db.insert("employee", "lastName", values); values.put("firstName", "Christophe"); values.put("lastName", "Jayaraj"); values.put("title", "Evangelist"); values.put("officePhone", "617-219-0000"); values.put("cellPhone", "617-666-7777"); values.put("email", "christ@adobe.com"); values.put("managerId", "2"); db.insert("employee", "lastName", values); values.put("firstName", "Chinnasamy"); values.put("lastName", "Murugan"); values.put("title", "Director Engineering"); values.put("officePhone", "617-612-0987"); values.put("cellPhone", "617-123-9876"); values.put("email", "murugan@email.com"); values.put("managerId", "2"); db.insert("employee", "lastName", values); values.put("firstName", "Jaya"); values.put("lastName", "Ramani"); values.put("title", "Lead Architect"); values.put("officePhone", "617-444-1122"); values.put("cellPhone", "617-555-3344"); values.put("email", "mtaylor@email.com"); values.put("managerId", "2"); db.insert("employee", "lastName", values); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS employees"); onCreate(db); } values.put("title","CEO"); values.put("officephone","617-219-2001"); values.put("cellphone","617-456-7890"); values.put("email","ramkumar@email.com"); db.insert("employee", "lastname",values); îèõ™èœ «ìHO™ ¹°ˆîŠð´‹, Þî¬ù «ð£¡Á ñŸø îèõ™èÀ‹ ¹°ˆîŠð†´œ÷¶. ÜŠA«ó† ªñˆî† Íô‹ «ìHœ ®ó£Š ªêŒòŠð´‹. H¡ù˜ ¹Fò «ìHœ à¼õ£‚èŠ ð´‹. Employee List.Java ç¬ð™ Íô‹ «ìHO™ îèõL¬ù «î® F¬óJ™ 裇H‚è «ð£A «ø£‹. db=(newDatabaseHelper(this) getwritableDatabase(); databaseHelper ç¬ðL™ à¼õ£‚Aò «ì†ì£«ðC¬ù Þƒ° ðòùð´ˆî «ð£A «ø£‹. searchText ñŸÁ‹ employeelist -J¬ù main.xml àì¡ Þ¬íŠ¹ ãŸð´ˆî searchText=(EditText)findviewById (R.id.searchText)
  • 4. package samples.employeedirectory; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; public class EmployeeList extends Activity { protected EditText searchText; protected SQLiteDatabase db; protected Cursor cursor; protected ListAdapter adapter; protected ListView employeeList; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); db = (new DatabaseHelper(this)).getWritableDatabase(); searchText = (EditText) findViewById (R.id.searchText); employeeList = (ListView) findViewById (R.id.list); } public void search(View view) { // || is the concatenation operation in SQLite cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?", new String[]{"%" + searchText.getText().toString() + "%"}); adapter = new SimpleCursorAdapter( this, R.layout.employee_list_item, cursor, new String[] {"firstName", "lastName", "title"}, new int[] {R.id.firstName, R.id.lastName, R.id.title}); employeeList.setAdapter(adapter); } - ªî£ì¼‹ ðì‹-3 ðì‹-4 ðì‹-5 Gó™-4 employeelist=(Listview)findviewById(R.id. list); main.xml ç¬ðL™ ð†ì¬ù à¼õ£‚Aò «ð£¶ android.onclick="search" â¡Á ðò¡ð´ˆF Þ¼‰«î£‹. Search â¡ù ªêò™ðì «õ‡´‹ â¡ðî¬ù employeelist- ™ õ¬óòÁˆ¶ àœ «÷£‹. è˜ê˜ Íô‹ «ì†ì£«ðC™ àœ÷ «ìHœ îèõ™ ªðøŠð´‹. C‹Hœ è˜ê˜ Üì£Šì˜ Íô‹ è˜ê˜ àœ÷ îèõ¬ô ªðŸÁ employee list -¡ Ü죊 ì˜ Ýè ܬñŠð¶ Íô‹  «î´‹ îèõ ½‚è£ù M¬ì F¬óJ™ «î£¡Á‹. (ðì‹2) ݇†ó£Œ´ âv®«èJ¬ù D:androidt â¡ø ç«ð£™ìK™ GÁM àœ«÷¡. âv‚Î ¬ô†®¬ù èñ£‡† ¬ô¡ Ç™ Ýù adh Íô‹ «êI‚èŠð†ì îèõL¬ù ÜPòô£‹. emulatorshell -ä Ü‚êv ªêŒò D:androidt platform-tools â¡ø ç«ð£™ìK™ adb-s emulator-5554 shell â¡Á ªè£´‚è «õ‡´‹. ꣡P¡ Íô‹ à¼õ£‚èŠð†ì «ì†ì£ «ðv datadatasamples.employeedirectory-J™ Þ¼‚°‹. (ðì‹3) Þ‰î ¬ìó‚ìKJ™ SQlite3 employee-dire ctory â¡Á ªè£´ˆî£™ âv‚Î ¬ô†®¬ù ðò¡ð´ˆî º®»‹. ÜŠO«èê¡ Íô‹ ༠õ£‚A»œ÷ «ì†ì£«ðC¡ ªðò˜ employee- directory â¡ð‹. âv‚άô† ®¬ù ªî£ìƒ°õ SQLite3 employee-directory â¡Á ªè£´ˆ , âv‚άô† ªêò™ðì ªî£ìƒ°‹. (ðì‹ 4) SQLite>.header on SQLite>.mode Column â¡Á ªè£´ˆî H¡ ù˜ SQLite>Select*from employees; â¡Á ªè£´ˆî£™ ÜŠO«èê¡ Íô‹ «êIˆî îèõ¬ô F¬óJ™ è£íô£‹. (ðì‹ 5)