android极简原创系列:三层结构和.net
16lz
2021-01-23
安卓的数据库操作最简单三层
首先是数据库创建:
package com.postdep.dal;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper {private static final int VERSION = 1;private static final String DBNAME = "saccount.db";public DBOpenHelper(Context context) {super(context, DBNAME, null, VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {// 创建数据库db.execSQL("CREATE TABLE [users] ([id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,[username] VARCHAR(50) NOT NULL,[password] VARCHAR(50) NOT NULL)");// 创建users表}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("drop table if exists users");}}我上面创建了一个叫saccount.db的数据库和一张叫users的表,表里面id是自增主键,两个varchar的字段
namespace是postdep.dal
DAL+BLL
package com.postdep.dal;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.postdep.model.User;public class DBUser {private DBOpenHelper helper;private SQLiteDatabase db;public DBUser(Context context) {helper = new DBOpenHelper(context);db = helper.getWritableDatabase();}// 添加操作public void insert(User user) {ContentValues values = new ContentValues();values.put("username", user.getUsername());values.put("password", user.getPassword());db.insert("users", null, values);}// 修改操作public void update(User user, int id) {db.execSQL("update users set username=?,password=? where id=" + id,new Object[] { user.getUsername(), user.getPassword()});}// 查询操作public User query(int id) {db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象User user = new User();Cursor cursor = db.query("users",new String[] { "username", "password" }, "id =" + id, null,null, null, null);if (cursor.getCount() > 0) {cursor.moveToFirst();user.setUsername(cursor.getString(cursor.getColumnIndex("username")));user.setPassword(cursor.getString(cursor.getColumnIndex("password")));return user;}cursor.close();return null;}}
上面这个一看都懂我就不多解释了
MODEL
package com.postdep.model;public class User// 密码数据表实体类{private int id;private String username;private String password;// 定义字符串,表示用户密码public User() {// 默认构造函数super();}public User(String username, String password) {this.username = username;this.password = password;}public int getId() {return 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;}}
做好以上三个操作后在系统里面调用的例子如下:
插入数据User user = new User("abc","123654");DBUser helper = new DBUser(MainActivity.this);helper.insert(user);查询数据final TextView tv1 = (TextView) findViewById(R.id.textView1);final TextView tv2 = (TextView) findViewById(R.id.textView2);DBUser helper = new DBUser(GrzxActivity.this);User user = helper.query(1);tv1.setText(user.getUsername());tv2.setText(user.getPassword());
更多相关文章
- Android中从服务器端向客户端传数据
- android 使用Java自带的HttpURLConnection 连接网络 读取返回数
- eclipse中Android布局的基本操作
- 文件操作与SDCard读写访问
- Android录音时,根据PCM数据获取音量值(单位分贝)
- Android自学笔记之Android常见命令操作及一些普通布局属性
- Android 之往通讯录中添加数据和查询数据