Android数据库操作

1、数据库的建立

package my.pack;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import java.util.*;
import android.content.Context;
import android.database.*;
import android.database.sqlite.*;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class MyDatabaseHelper extends SQLiteOpenHelper
{
	private static final String DB_NAME = "Notepad_1.db";
    private static final int DB_VERSION = 1;
    private static final String TABLE_NAME = "Table_1";
    MyDatabaseHelper(Context context) 
	{  
		super(context, DB_NAME, null, DB_VERSION);  
	}  
	@Override  
	public void onCreate(SQLiteDatabase db) 
	{  
		String Sql = "CREATE TABLE Table_1 ('Time' varchar(200) not null,'Title' varchar (200) not null,'Content' text ,primary key(Title));";
		db.execSQL(Sql);
	}  
	@Override  
	public void onUpgrade(SQLiteDatabase db, int oldVersion,   int newVersion) 
	{  	
	}	
}

2、数据库操作帮组类(选择、插入、删除、)

package my.pack;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class MySqlHelper {
	public MyDatabaseHelper mOpenHelper; 
    public SQLiteDatabase db; 
    //构造函数
    MySqlHelper(Context context)
    {
    	mOpenHelper = new MyDatabaseHelper(context); 
    }
    //选择
    public int SelectItem(String mytitle)
    {
    	db = mOpenHelper.getReadableDatabase(); 
    	//String col[] = {"Time","Title","Content"};
    	//String Sql = "where 'Title' = " + mytitle;
    	//Cursor cur = db.query("Table_1",col,Sql,null,null,null,null);
        Cursor cur = db.rawQuery("SELECT * FROM Table_1 WHERE Title=?", new String[] { mytitle});  
    	int num = cur.getCount();
    	cur.close();
    	db.close();
    	return num;
    }
    //插入
    public void InsertItem(String mytime,String mytitle,String mycontent)
	{
    	db = mOpenHelper.getWritableDatabase(); 
    	String Sql= "insert into Table_1 values('" + mytime +"', '" + mytitle +"', '" + mycontent+"' )";
    	try
    	{
    		db.execSQL(Sql);
    		//setTitle("Yes");
    	}
    	catch(SQLException e)
    	{
    		//setTitle(Sql);
    	}
    	db.close();
	}
    //显示
    public ArrayList<HashMap<String, Object>> ShowItem()
    {
    	ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();  

    	db = mOpenHelper.getReadableDatabase(); 
    	String col[] = {"Time","Title","Content"};
    	Cursor cur = db.query("Table_1",col,null,null,null,null,"Time desc"); //按时间降序
    	int num = cur.getCount();
    	//setTitle(Integer.toString(num) + " 条记录");
    	cur.moveToFirst();
    	for(int i=0;i<num;i++)
    	{
    		HashMap<String, Object> map = new HashMap<String, Object>();  
    		map.put("ItemTitle", cur.getString(1));  
            map.put("ItemText", cur.getString(0));  
            listItem.add(map);  
    		cur.moveToNext();
    	}
    	cur.close();
    	db.close();
    	return listItem;
    }
    //删除Item
    public void DeleteItem(String mytitle)
    {
    	try
    	{
    		db = mOpenHelper.getWritableDatabase(); 
    		db.delete("Table_1","Title = '"+mytitle + "'",null);
    		//setTitle("删除Title为" + mytitle +"的记录");
    		db.close();
    	}
    	catch(SQLException e)
    	{}
    }
    //删除表项
    public void DeleteTable(String mytable)
    {
    	try
    	{
    		db = mOpenHelper.getWritableDatabase(); 
    		String Sql = "drop table " +mytable;
    		db.execSQL(Sql);
    		db.close();
    		//setTitle("已删除" + mytable +"表项");
    	}
    	catch(SQLException e)
    	{}
    }
}


3、删除数据库

**删除数据库
final File file = this.getDatabasePath(DB_NAME);
file.delete();


Ps、 第一次调用getWritableDatabase()或getReadableDatabase()方法后,SQLiteOpenHelper会缓存当前的SQLiteDatabase实例,SQLiteDatabase实例正常情况下会维持数据库的打开状态,所以在你不再需要SQLiteDatabase实例时,请及时调用close()方法释放资源。一旦SQLiteDatabase实例被缓存,多次调用getWritableDatabase()或getReadableDatabase()方法得到的都是同一实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android进行数据库操作的步骤如下: 1. 创建一个自定义的类,继承SQLiteOpenHelper类,并实现onCreate()和onUpgrade()方法。在onCreate()方法,通过执行SQL语句创建表格。例如,可以使用execSQL()方法执行CREATE TABLE语句来创建表格。\[3\] 2. 在自定义的SQLiteOpenHelper类,重写onOpen()方法,可以在该方法进行一些数据库打开时的操作。\[3\] 3. 在需要进行数据库操作的地方,创建一个SQLiteOpenHelper的实例,并调用getWritableDatabase()或getReadableDatabase()方法获取一个可写或可读的数据库对象。\[3\] 4. 使用获取到的数据库对象,可以进行插入、查询、更新和删除等数据库操作。例如,可以使用execSQL()方法执行SQL语句来插入、更新或删除数据。\[1\] 5. 在使用完数据库后,记得调用close()方法关闭数据库连接,释放资源。\[3\] 综上所述,Android数据库操作的步骤包括创建自定义的SQLiteOpenHelper类、实现数据库的创建和升级方法、获取数据库对象、执行数据库操作、关闭数据库连接。 #### 引用[.reference_title] - *1* *3* [Android数据库操作](https://blog.csdn.net/weixin_43244265/article/details/107871897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Android 连接MySql数据库步骤](https://blog.csdn.net/m0_62321937/article/details/129905218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__简言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值