android SQLiteOpenHelper 使用
生活随笔
收集整理的這篇文章主要介紹了
android SQLiteOpenHelper 使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、實體
package mydemo.mycom.demo2.entity;public class UserInfo {private int id;private String username;private String password;public UserInfo(){ }public UserInfo(int id, String username, String password) {this.id = id;this.username = username;this.password = password;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }2.UserSQLiteOpenHelper?
package mydemo.mycom.demo2.db;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;public class UserSQLiteOpenHelper extends SQLiteOpenHelper {/*** 數據庫的構造方法 用來定義數據庫的名稱 數據庫查詢的結果集 數據庫的版本* **/public UserSQLiteOpenHelper(Context context) {super(context, "user.db", null, 1);}/*** 數據庫第一次被創建的時候調用的方法* db被創建的數據庫* **/@Overridepublic void onCreate(SQLiteDatabase db) {//初始化數據庫的表結構 d integer primary key autoincrement,db.execSQL("create table user (id integer primary key autoincrement,username varchar(20),password varchar(20))");}/*** 當數據庫的版本號發生變化的時候(增加的時候) 調用* */@Overridepublic void onUpgrade(SQLiteDatabase db, int i, int i2) {db.execSQL("alter table user add account varchar(20)");} }3.JDBC的UserDAO
package mydemo.mycom.demo2.dao;import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList; import java.util.List;import mydemo.mycom.demo2.db.UserSQLiteOpenHelper; import mydemo.mycom.demo2.entity.UserInfo;public class UserDao {private UserSQLiteOpenHelper helper;public UserDao(Context context){helper = new UserSQLiteOpenHelper(context);}/*** 添加一條記錄到數據庫* username 用戶名* password 密碼** */public void add(String username,String password){SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("insert into user(username,password) values(?,?)",new String[]{username,password});db.close();}/*** 判斷數據庫是否存在username 的數據** username 用戶名* */public boolean findByUsername(String username){SQLiteDatabase db = helper.getWritableDatabase();Cursor cursor = db.rawQuery("select * from user where username=?",new String[]{username});boolean result = cursor.moveToNext();db.close();return result;}/*** 修改一條記錄* 通過username 修改 password** username 用戶名* password 密碼** */public void update(String username,String password){SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("update user set password=? where username=?",new String[]{password,username});db.close();}/*** 刪除記錄* 通過username修改一條記錄** username 用戶名* */public void delete(String username){SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("delete from user where username=?",new String[]{username});db.close();}/*** 找出所有用戶信息* */public List<UserInfo> findAll(){SQLiteDatabase db = helper.getWritableDatabase();List<UserInfo> list = new ArrayList<UserInfo>();Cursor cursor = db.rawQuery("select * from user",null);while(cursor.moveToNext()){int id = cursor.getInt(cursor.getColumnIndex("id"));String username = cursor.getString(cursor.getColumnIndex("username"));String password = cursor.getString(cursor.getColumnIndex("password"));UserInfo userInfo = new UserInfo(id,username,password);list.add(userInfo);}cursor.close();db.close();return list;}/*** 通過id 用戶信息* id 用戶id* */public UserInfo findById(int id){SQLiteDatabase db = helper.getWritableDatabase();Cursor cursor =db.rawQuery("select * from user where id=?",new String[]{id+""});UserInfo user = new UserInfo();while(cursor.moveToNext()){int uid = cursor.getInt(cursor.getColumnIndex("id"));String username = cursor.getString(cursor.getColumnIndex("username"));String password = cursor.getString(cursor.getColumnIndex("password"));user.setId(uid);user.setPassword(password);user.setUsername(username);break;}cursor.close();db.close();return user;}}4.SQLiteOpenHelper的 UserDAO
package mydemo.mycom.demo2.dao;import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList; import java.util.List;import mydemo.mycom.demo2.db.UserSQLiteOpenHelper; import mydemo.mycom.demo2.entity.UserInfo;/*** Created by Administrator on 2015/5/15.*/ public class UserDao2 {private UserSQLiteOpenHelper helper;public UserDao2(Context context){helper = new UserSQLiteOpenHelper(context);}/*** 添加一條記錄到數據庫* username 用戶名* password 密碼** */public long add(String username,String password){SQLiteDatabase db = helper.getWritableDatabase();ContentValues values = new ContentValues();values.put("username",username);values.put("password",password);long num = db.insert("user",null,values);db.close();return num;}/*** 判斷數據庫是否存在username 的數據** username 用戶名* */public boolean findByUsername(String username){SQLiteDatabase db = helper.getWritableDatabase();Cursor cursor = db.query("user",null,"username=?",new String[]{username},null,null,null);boolean result = cursor.moveToNext();db.close();return result;}/*** 修改一條記錄* 通過username 修改 password** username 用戶名* password 密碼** */public int update(String username,String password){SQLiteDatabase db = helper.getWritableDatabase();ContentValues values = new ContentValues();values.put("password",password);int num = db.update("user",values,"username=?", new String[]{username});db.close();return num;}/*** 刪除記錄* 通過username修改一條記錄** username 用戶名* */public int delete(String username){SQLiteDatabase db = helper.getWritableDatabase();int num = db.delete("user","username=?",new String[]{username});db.close();return num;}/*** 找出所有用戶信息* */public List<UserInfo> findAll(){SQLiteDatabase db = helper.getWritableDatabase();List<UserInfo> list = new ArrayList<UserInfo>();Cursor cursor = db.query("user",null,null,null,null,null,null);while(cursor.moveToNext()){int id = cursor.getInt(cursor.getColumnIndex("id"));String username = cursor.getString(cursor.getColumnIndex("username"));String password = cursor.getString(cursor.getColumnIndex("password"));UserInfo userInfo = new UserInfo(id,username,password);list.add(userInfo);}cursor.close();db.close();return list;}/*** 通過id 用戶信息* id 用戶id* */public UserInfo findById(int id){SQLiteDatabase db = helper.getWritableDatabase();Cursor cursor = db.query("user",null,"id=?",new String[]{id+""},null,null,null);UserInfo user = new UserInfo();while(cursor.moveToNext()){int uid = cursor.getInt(cursor.getColumnIndex("id"));String username = cursor.getString(cursor.getColumnIndex("username"));String password = cursor.getString(cursor.getColumnIndex("password"));user.setId(uid);user.setPassword(password);user.setUsername(username);break;}cursor.close();db.close();return user;} }5.SQLiteOpenHelper 簡單使用
package mydemo.mycom.demo2;import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast;import mydemo.mycom.demo2.dao.UserDao; import mydemo.mycom.demo2.dao.UserDao2;public class Register extends ActionBarActivity implements View.OnClickListener {private EditText et_register_username;private EditText et_register_password;private Button btn_register;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);et_register_username = (EditText)findViewById(R.id.et_register_username);et_register_password = (EditText)findViewById(R.id.et_register_password);btn_register = (Button)findViewById(R.id.btn_register);btn_register.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_register, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overridepublic void onClick(View view) {String username = et_register_username.getText().toString().trim();String password = et_register_password.getText().toString().trim();if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){Toast.makeText(this,"用戶名和密碼不能為空",Toast.LENGTH_SHORT).show();return;}UserDao2 userDao = new UserDao2(this);userDao.add(username,password);Toast.makeText(this,"注冊成功",Toast.LENGTH_SHORT).show();} }6.SQLiteOpenHelper事務管理
package mydemo.mycom.demo2.testUserDao;import android.database.sqlite.SQLiteDatabase; import android.test.AndroidTestCase;import mydemo.mycom.demo2.db.UserSQLiteOpenHelper;public class TestUserInfo extends AndroidTestCase{private String s;public void testTransaction() throws Exception{UserSQLiteOpenHelper helper = new UserSQLiteOpenHelper(getContext());SQLiteDatabase db = helper.getWritableDatabase();//開始數據庫的事務db.beginTransaction();try{db.execSQL("update user set account=account-1000 where id=1");//空指針異常s.equals("123");db.execSQL("update user set account=account+1000 where id=2");//提交事務db.setTransactionSuccessful();}catch(Exception ex){}finally{//結束事務db.endTransaction();db.close();}}}總結
以上是生活随笔為你收集整理的android SQLiteOpenHelper 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLiteOpenHelper使用详解
- 下一篇: Skip宏块与Direct预测模式浅析