Android之SQLite

其实Android的数据库操作本质和java没有区别
都是一样的套路 (不过有的事情我就不说了 代码之珍贵)
Android的数据库更加轻便适合移动端的设备
SQLiteDatabase
首先看数据库打开的方式 openDatabase(路径 游标工厂 工作模式(以 | 隔开))
然后执行sql语句 execSQL
在这里插入图片描述

关闭数据库很简单 close 就行
在这里插入图片描述

增删改查 主要是sql的语句(主要是讲Demo用的 实际操作千万不要模仿) Android里面只要execSQL去执行就行
插入 删除 修改 我就不多谈(代码在下面)
主要谈查询
Cursor 就相当于Java中的ResultSet 结果集
moveToNext 就相当于Java中的next
在这里插入图片描述

为了使代码不重用 自定义方法
在这里插入图片描述

public class SQLLiteExampleActivity extends Activity {

	SQLiteDatabase sld;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//禁止显示结果用的EditText被编辑
		EditText et=(EditText)this.findViewById(R.id.EditText01);
		et.setKeyListener(null);

		//初始化创建数据库按钮
		Button b=(Button)this.findViewById(R.id.Button01);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						createOrOpenDatabase();
					}
				}
		);

		//初始化关闭数据库按钮
		b=(Button)this.findViewById(R.id.Button02);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						closeDatabase();
					}
				}
		);

		//初始化添加记录按钮
		b=(Button)this.findViewById(R.id.Button03);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						insert();
					}
				}
		);

		//初始化删除记录按钮
		b=(Button)this.findViewById(R.id.Button04);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						delete();
					}
				}
		);

		//初始化修改记录按钮
		b=(Button)this.findViewById(R.id.Button05);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						update();
					}
				}
		);

		//初始化查询记录按钮
		b=(Button)this.findViewById(R.id.Button06);
		b.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						query();
					}
				}
		);
	}

	//创建或打开数据库的方法
	public void createOrOpenDatabase()
	{
		try
		{
			sld=SQLiteDatabase.openDatabase
					(
							"/data/data/wyf.jc/mydb", //数据库所在路径
							null, 								//CursorFactory
							SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY //读写、若不存在则创建
					);
			appendMessage("数据库已经成功打开!");
			String sql="create table if not exists student(sno char(5),stuname varchar(20),sage integer,sclass char(5))";
			sld.execSQL(sql);
			appendMessage("student已经成功创建!");
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
		}
	}

	//关闭数据库的方法
	public void closeDatabase()
	{
		try
		{
			sld.close();
			appendMessage("数据库已经成功关闭!");
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
		}
	}

	//插入记录的方法
	public void insert()
	{
		try
		{
			String sql="insert into student values('10001','王强',23,'97002')";
			sld.execSQL(sql);
			appendMessage("成功插入一条记录!");
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
		}
	}

	//删除记录的方法
	public void delete()
	{
		try
		{
			String sql="delete from student;";
			sld.execSQL(sql);
			appendMessage("成功删除所有记录!");
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
		}
	}

	//修改记录的方法
	public void update()
	{
		try
		{
			String sql="update student set stuname='李勇'";
			sld.execSQL(sql);
			appendMessage("成功更新记录!");
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
		}
	}

	//查询的方法
	public void query()
	{
		try
		{
			String sql="select * from student where sage>?";
			Cursor cur=sld.rawQuery(sql, new String[]{"20"});
			appendMessage("学号\t\t姓名\t\t年龄\t班级");
			while(cur.moveToNext())
			{
				String sno=cur.getString(0);
				String sname=cur.getString(1);
				int sage=cur.getInt(2);
				String sclass=cur.getString(3);
				appendMessage(sno+"\t"+sname+"\t\t"+sage+"\t"+sclass);
			}
			cur.close();
		}
		catch(Exception e)
		{
			Toast.makeText(this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();;
		}
	}

	//向文本区中添加文本
	public void appendMessage(String msg)
	{
		EditText et=(EditText)this.findViewById(R.id.EditText01);
		et.append(msg+"\n");
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41910103/article/details/82930532
今日推荐