对于任何语言都是离不开数据库的,对于学习过其他语言的人来说,一般都是接触过数据库的。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取。

下面来看一下SQLite的常用操作,结合前面的布局,文本框按钮样式写的登录界面,登录有验证。

开始准备把数据显示在页面上,要用到listview,以为这里还有一点问题,所以这里就把基本的语句先写了(语句都已测试过),数据显示,增加删除与listview详细操作请访问:https://blog.csdn.net/qq_40205116/article/details/88866785,数据存储使用的是LitePal2.0实现的。LitePal2.0使用也有详细讲解。

 

目录:

因为页面中颜色好像不能使用英文,所以在colos.xml文件中定义了常用的颜色

<?xml version="1.0" encoding="utf-8"?>    #FFB6C1    #FF0000    #000000    #FFFFFF    #0000FF    #708090    #87CEEB    #008000    #FFA500    #808080

button_style.xml按钮样式:

<?xml version="1.0" encoding="utf-8"?>                        

edit_style.xml文本框样式:

<?xml version="1.0" encoding="utf-8"?>                    

activity_main.xml登录页面:

                            

登录后的页面activity_index.xml,这个页面就显示了一个用户的姓名(开始还有几个测试按钮,之后感觉不好看删除了O(∩_∩)O哈哈~,你们可以自己加几个按钮测试)

                

页面,样式代码都在这里了,还一张背景图片,可以到网上随便找一张。下面来看看数据库操作的代码。

TUser.java相当于实体类。

package com.example.androiddemo01.model;public class TUser {private Integer id;private String username;private String password;private String name;private String sex;public Integer getId() {return id;}public void setId(Integer 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;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public TUser(Integer id, String username, String password, String name,String sex) {super();this.id = id;this.username = username;this.password = password;this.name = name;this.sex = sex;}public TUser() {super();}}

DbOpenHelper.java链接数据库,创建数据库类

package com.example.androiddemo01.dao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DbOpenHelper extends SQLiteOpenHelper {private static final String DBNAME = "data.db";private static int version = 1;//content容器,name链接数据库名字,version版本号,factory游标工厂public DbOpenHelper(Context context) {super(context, DBNAME, null, version);}//运行DbOpenHelper时执行,建立表和数据库,没有数据库则建立,只有第一次运行执行@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "create table t_user("+"id integer primary key autoincrement not null,"+"username text(10),"+"password text(10),"+"name text(10),"+"sex text(2))";//执行SQL语句db.execSQL(sql);sql = "insert into t_user ('username', 'password', 'name', 'sex') values('admin','admin', '张三', '男')";db.execSQL(sql);}//更新,版本升级@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}

TUserDAO.java数据库操作类,增删改查。

package com.example.androiddemo01.dao;import java.util.ArrayList;import java.util.List;import com.example.androiddemo01.model.TUser;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;//持久层类,对数据库的操作public class TUserDAO {private SQLiteDatabase db;//content容器,上下文public TUserDAO(Context context){super();DbOpenHelper helper = new DbOpenHelper(context);db = helper.getWritableDatabase();}//登录验证public TUser findUserNameAndPassword(String str, String str1) {String sql = "select * from t_user where username = ? and password = ?";Cursor cursor = db.rawQuery(sql, new String[] {str, str1});TUser user = null;//cursor.moveToNext判断下一个是否有值if(cursor.moveToNext()){user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));}return user;}//查找表中所有数据public List findAll(){String sql = "select * from t_user";Cursor cursor = db.rawQuery(sql, null);List list = new ArrayList();if(cursor.moveToNext()){TUser user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));list.add(user);}return list;}//根据姓名模糊查找public List searchByName(String key){List list = new ArrayList();key = "%"+key+"%";Cursor cursor = db.rawQuery("select * from t_user where name like ?", new String[]{key});while(cursor.moveToNext()){TUser user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));list.add(user);}return list;}//添加public void insert(TUser t){db.execSQL("insert into t_user(username, password, name, sex) values(?, ?, ?, ?)", new Object[] {t.getUsername(), t.getPassword(), t.getName(), t.getSex()});System.out.println("添加数据成功!");}//修改public void update (TUser user){db.execSQL("update t_user set name=?, sex = ?, password = ?, username = ? where id = ?",new Object[] {user.getName(), user.getSex(), user.getPassword(), user.getUsername(), user.getId()});}//根据id删除public void delete(int id){Integer i = new Integer(id);db.execSQL("delete from student where id = ?", new Object[]{i});}}

MainActivity.java登录处理类

package com.example.androiddemo01;import com.example.androiddemo01.dao.TUserDAO;import com.example.androiddemo01.model.TUser;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private TextView username;private TextView password;private Button submit;private Button register;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                username = (TextView) findViewById(R.id.username);        password = (TextView) findViewById(R.id.password);        submit = (Button) findViewById(R.id.submit);        register = (Button) findViewById(R.id.register);        submit.setOnClickListener(this);        register.setOnClickListener(this);    }@Overridepublic void onClick(View v) {TUserDAO user = new TUserDAO(this);//创建intent对象Intent intent = new Intent();switch (v.getId()) {case R.id.submit:String str = username.getText().toString();String str1 = password.getText().toString();if(str.equals("") || str1.equals("")){//弹框提示Toast.makeText(MainActivity.this, "账号密码不能为空", Toast.LENGTH_SHORT).show();}else{TUser t_user = user.findUserNameAndPassword(str, str1);if(t_user == null){Toast.makeText(MainActivity.this, "账号或密码输入错误", Toast.LENGTH_SHORT).show();}else{//跳转指定的Activityintent.setClass(MainActivity.this, IndexActivity.class);//传递参数intent.putExtra("name", t_user.getName());//执行方法startActivityForResult(intent, 2);}}break;default:break;}}}

IndexActivity.java登录成功显示姓名。最后一个类了^_^

package com.example.androiddemo01;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class IndexActivity extends Activity {private TextView text;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_index);text = (TextView) findViewById(R.id.text);//取得两个页面之间传递的intentIntent intent = getIntent();//取出传递的参数Bundle bundle = intent.getExtras();text.setText("欢迎您:"+bundle.getString("name"));}}

 

如果这个都掌握了,可以学一下litepal第三方数据库框架,地址:https://blog.csdn.net/qq_40205116/article/details/88741724

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. Android(安卓)webview控件(一) 使用webview开发浏览器实例
  4. Android数据存储之SQLite
  5. Android(安卓)WebView 优化之路
  6. 开发者眼中的Android手机平台
  7. Android(安卓)RxJava操作符详解 系列:组合 / 合并操作符
  8. Android(安卓)RxJava 实际应用讲解:合并数据源 & 同时展示
  9. android开发系列之数据存储

随机推荐

  1. Android NDK 面试题汇总
  2. Android 注解基本使用
  3. 一篇看懂Android与Flutter之间的通信
  4. Android(安卓)WebView那些坑之上传文件
  5. Flutter笔记(二)
  6. Unity和Android互相调用方法
  7. android的looper,handler消息小结
  8. SEAndroid安全机制简要介绍和学习计划
  9. Android 内存泄露分析
  10. android使用mysql的方法总结