导航:首页 > 操作系统 > android数据库调用

android数据库调用

发布时间:2023-03-16 08:17:34

① 如何进行android数据库操作

在自己Android数据库接收或发出一个系统action的时候,要名副其实。比如你响应一个view动作,做的确实edit的勾当,你发送一个pick消息,其实你想让别人做edit的事,这样都会造成混乱。
一个好的习惯是创建一个辅助类来简化你的Android数据库交互。考虑创建一个数据库适配器,来添加一个与数据库交互的包装层。它应该提供直观的、强类型的方法,如添加、删除和更新项目。数据库适配器还应该处理查询和对创建、打开和关闭数据库的包装。
它还常用静态的Android数据库常量来定义表的名字、列的名字和列的索引。下面的代码片段显示了一个标准数据库适配器类的框架。它包括一个SQLiteOpenHelper类的扩展类,用于简化打开、创建和更新数据库。
import android.content.Context; import android.database.*; import android.database.sqlite.*; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.util.Log; public class MyDBAdapter { // The name and column index of each column in your database. public static final String KEY_NAME=”name”; public static final int NAME_COLUMN = 1; // TODO: Create public field for each column in your table. // SQL Statement to create a new database. private static final String DATABASE_CREATE = “create table “ + DATABASE_TABLE + “ (“ + KEY_ID + “ integer primary key autoincrement, “ + KEY_NAME + “ text not null);”; // Variable to hold the database instance private SQLiteDatabase db; // Context of the application using the database. private final Context context; // Database open/upgrade helper private myDbHelper dbHelper; public MyDBAdapter(Context _context) { context = _context; dbHelper = new myDbHelper(context, DATABASE_NAME, null, DATABASE_VERSION); } public MyDBAdapter open() throws SQLException { db = dbHelper.getWritableDatabase(); return this; } public void close() { db.close(); } public long insertEntry(MyObject _myObject) { ContentValues contentValues = new ContentValues(); // TODO fill in ContentValues to represent the new row return db.insert(DATABASE_TABLE, null, contentValues); } public boolean removeEntry(long _rowIndex) { return db.delete(DATABASE_TABLE, KEY_ID + “=” + _rowIndex, null) > 0; } public Cursor getAllEntries () { return db.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_NAME}, null, null, null, null, null); } public MyObject getEntry(long _rowIndex) { MyObject objectInstance = new MyObject(); // TODO Return a cursor to a row from the database and // use the values to populate an instance of MyObject return objectInstance; } public int updateEntry(long _rowIndex, MyObject _myObject) { String where = KEY_ID + “=” + _rowIndex; ContentValues contentValues = new ContentValues(); // TODO fill in the ContentValue based on the new object return db.update(DATABASE_TABLE, contentValues, where, null); } private static class myDbHelper extends SQLiteOpenHelper { public myDbHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } // Called when no database exists in // disk and the helper class needs // to create a new one. @Override public void onCreate(SQLiteDatabase _db) { _db.execSQL(DATABASE_CREATE); }

② android 如何连接数据库

这种方式通常连接一个外部的数据库,第一个参数就是数据库文件,这个数据库不是当前项目中生成的,通常放在项目的Assets目录下,当然也可以在手机内,如上面参数那个目录,前提是那个文件存在且你的程序有访问权限。

另一种使用数据库的方式是,自己创建数据库并创建相应的数据库表,参考下面的代码:
public class DatabaseHelper extends SQLiteOpenHelper {
//构造,调用父类构造,数据库名字,版本号(传入更大的版本号可以让数据库升级,onUpgrade被调用)
public DatabaseHelper(Context context) {
super(context, DatabaseConstant.DATABASE_NAME, null, DatabaseConstant.DATABASE_VERSION);
}
//数据库创建时调用,里面执行表创建语句.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createVoucherTable());
}
//数据库升级时调用,先删除旧表,在调用onCreate创建表.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DatabaseConstant.TABLE_NAME);
onCreate(db);
}
//生成 创建表的SQL语句
private String createVoucherTable() {
StringBuffer sb = new StringBuffer();
sb.append(" CREATE TABLE ").append(DatabaseConstant.TABLE_NAME).append("( ").append(“ID”)
.append(" TEXT PRIMARY KEY, ")
.append(“USER_ID”).append(" INTEGER, ").append(“SMS_CONTENT”).append(" TEXT ) ");
return sb.toString();
}
} 继承SQLiteOpenHelper并实现里面的方法.

之后:
//得到数据库助手类
helper
=
new
DatabaseHelper(context);
//通过助手类,打开一个可读写的数据库连接
SQLiteDatabase
database
=
helper.getReadableDatabase();
//查询表中所有记录
database.query(DatabaseConstant.TABLE_NAME,
null,
null,
null,
null,
null,
null);

③ android怎么将数据存入数据库

你通过getText()方法首先得到输入的值,然后兄丛调用数据库的插入返尘液方法 db.insert();插入到漏物数据库中就行 就想这样 x0dx0aEditText et ; x0dx0aString num = et.getText().toString(); x0dx0apublic void addData(String num) { x0dx0a SQLiteDatabase db = dbHelper.getWritableDatabase(); x0dx0a ContentValues values = new ContentValues(); x0dx0a values.put("num", num); x0dx0a db.insert("表名", null, values); x0dx0a } x0dx0a x0dx0a当你调用这个 addData()方法时就会向数据库中插入数据了

④ 怎样使Android程序调用mysql数据库里面的数据

一、首先要加载JDBC驱动包。

步骤:右击项目找到build path->configure build path->libraries——>add External JARs添加驱动包

二、写测试类:TestCon.java

在带芹此之前,首先:

在自己的电脑上Mysql下确定账户是"root",密码是"橘行带123456";

2.进入账户,创建数据库cui;

3.在数据库cui下面,创建表test1 包含_id(int 类型自动增加) username(String 类型)、password(String 类型);

4.在表中插入数圆芦据,以便显示

1packagecom.test.an;
2
3importjava.sql.Connection;
4importjava.sql.DriverManager;
5importjava.sql.PreparedStatement;
6importjava.sql.ResultSet;
7importjava.sql.SQLException;
8
9
10publicclassTestCon1{
11publicstaticvoidmain(String[]args)
12{
13Connectioncon=null;
14Stringsql;
15PreparedStatementpre;
16ResultSetrs;
17
18try{
19Stringdriver="com.mysql.jdbc.Driver";
20Class.forName(driver);
21
22Stringurl="jdbc:mysql://localhost:3306/cuiuseUnicode=true&characterEncoding=latin1";//utf-8也行
23con=DriverManager.getConnection(url,"root","123456");
24
25sql="select_id,username,passwordfromtest1";
26pre=con.prepareStatement(sql);
27
28rs=pre.executeQuery();
29while(rs.next()){
30intid=rs.getInt(1);
31Stringusername=rs.getString(2);
32Stringpassword=rs.getString(3);
33
34System.out.println("id="+id+";username="+username+";password="+password);
35}
36con.close();
37}catch(SQLExceptione){
38e.printStackTrace();
39}catch(ClassNotFoundExceptione){
40e.printStackTrace();
41}
42
43}
44
45}

运行结果:

id=1;username=ccc;password=123456

id=2;username=xxx;password=654321

id=3;username=ddd;password=123456

id=4;username=ddf÷;password=yyt

id=5;username=cuixiaodong;password=cxd

id=6;username=vv;password=cxd

⑤ android 怎么读取数据库中的数据

android读取数据库可以使用sqlite一些api进行读取,实例如下:

/**
*查找一条数据
*@paramuid
*/
publicUserfind(Integeruid){
SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();//创建数据库辅助类
Cursorcursor=db.rawQuery("select*fromuserwhereuid=?",newString[]{uid.toString()});//创建一个游标
if(cursor.moveToFirst()){//循环遍历查找数组
intuid2=cursor.getInt(cursor.getColumnIndex("uid"));
Stringuname=cursor.getString(cursor.getColumnIndex("uname"));
Stringuaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
Useruser=newUser();
user.setUid(uid2);
user.setUname(uname);
user.setUaddress(uaddress);
returnuser;
}
cursor.close();
returnnull;
}

⑥ android sqlite数据库怎么使用

其主要思路是:

1. 把数据库分解成几个asset文件。

2. 当需要打开数据库消慎时,如果数据库不存在,就把那几个asset文件重新合并成一个数拿迟敬据库文件。

3. 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。

下面是代码:

//数据库的缺省路径

private static finalString DB_PATH = "/data/data/com.mypackage.myapp/databases/";

private static finalString DB_NAME = "mydb.db";

private static finalint DB_VERSION = 2;

private static finalString DB_SPLIT_NAME = "mydb.db.00";

private static finalint DB_SPLIT_COUNT = 3;

private SQLiteDatabasem_database;

private final Contextm_context;

/**

* Constructor

*保存传进来的context参数以用来访问应用的asset和资源文件。

* @param context

*/

public MyDB(Contextcontext) {

super(context, DB_NAME, null, DB_VERSION);

this.m_context = context;

}

public static MyDBopenDatabaseReadOnly(Context context) {

MyDB db = new MyDB(context);

try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

db.openDataBase(SQLiteDatabase.OPEN_READONLY);

return db;

}

public static MyDBopenDatabaseReadWrite(Context context) {

MyDB db = new MyDB(context);

try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

db.openDataBase(SQLiteDatabase.OPEN_READWRITE);

return db;

}

/**

*创建一个空数据库,用来存储你已有的数据库。

*/

public voidcreateDataBase() throws IOException{

boolean dbExist =checkDataBase();

if (dbExist) {

/*

**如果你的数据库的版旦笑本改变了,调用这个方法确保在onUpgrade()被调用时

**传进去的是可写的数据库。

*/

SQLiteDatabase db =this.getWritableDatabase();

if (db != null) {

db.close();

}

}

dbExist = checkDataBase();

if (!dbExist) {

try {

/*

** 调用这个方法以确保在缺省路径内产生一个空数据库,以便在其基础上复制我们已有的数据库。

*/

SQLiteDatabase db =this.getReadableDatabase();

if (db != null) {

db.close();

}

DataBase();

}

catch (IOException e) {

Log.e("DB", e.getMessage());

throw new Error("Error ingdatabase");

}

}

}

/**

* 检查数据库是否已存在,以避免重复复制。

* @return true if it exists, false if itdoesn't

*/

private static booleancheckDataBase(){

SQLiteDatabase checkDB = null;

try {

String path = DB_PATH + DB_NAME;

checkDB =SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

}

catch (SQLiteException e){

//database does't exist yet.

}

if (checkDB != null) {

checkDB.close();

}

return checkDB != null ? true : false;

}

/**

* 把存在asset文件中的数据库复制的刚创建的空数据库中。

* */

private voidDataBase() throws IOException {

// 刚创建的空数据库的路径

String outFileName = DB_PATH + DB_NAME;

// 打开空数据库

OutputStream output = new FileOutputStream(outFileName);

byte[] buffer = new byte[1024*8];

AssetManager assetMgr =m_context.getAssets();

for (int i = 1; i <= DB_SPLIT_COUNT; i++){

// 打开分解的asset文件

String fn = DB_SPLIT_NAME +String.valueOf(i);

InputStream input = assetMgr.open(fn);

//Log.i("DB", "opened" + fn);

int length;

while ((length = input.read(buffer)) >0) {

//Log.i("DB", "read" + String.valueOf(length));

output.write(buffer, 0, length);

//Log.i("DB", "write" + String.valueOf(length));

}

input.close();

}

//Close the streams

output.flush();

output.close();

}

/**

* 打开数据库。

* */

private voidopenDataBase(int flags) throws SQLException{

//Open the database

String myPath = DB_PATH + DB_NAME;

m_database =SQLiteDatabase.openDatabase(myPath, null, flags);

}

/**

* 关闭数据库。

* */

@Override

public synchronizedvoid close() {

if (m_database != null)

m_database.close();

super.close();

}

}

@Override

public voidonCreate(SQLiteDatabase db) {

// 不需做任何事

}

/**

* 在数据库版本提高时,删除原有数据库。

* */

@Override

public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

if (newVersion > oldVersion) {

m_context.deleteDatabase(DB_NAME);

}

}

⑦ android 怎么读取数据库中的数据

android读取数据库可以使用sqlite一些api进行读取,实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

/**
* 查找一条数据
* @param uid
*/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类
Cursor cursor =db.rawQuery("select * from user where uid=?", new String[]{uid.toString()}); //创建一个游标
if(cursor.moveToFirst()){ //循环遍历查找数组
int uid2=cursor.getInt(cursor.getColumnIndex("uid"));
String uname=cursor.getString(cursor.getColumnIndex("uname"));
String uaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
User user=new User();
user.setUid(uid2);
user.setUname(uname);
user.setUaddress(uaddress);
return user;
}
cursor.close();
return null;
}

⑧ 如何操作android中的数据库

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:
构造函数,调用父类 SQLiteOpenHelper 的构造函数
onCreate()方法;// TODO 创建数据库后,对数据库的操作
onUpgrage()方法。// TODO 更改数据库版本的操作
当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

⑨ 怎样使Android程序调用mysql数据库里面的数据

1.首先需要安装MySQL Server 5.1和navicat for mysql。这个安装是很简单的,网上很多教程,和安装一般软件差不多。只有在安装MySQL Server 5.1时,要注意选择字符编码为gb2312(中文)那个选项。

2. 使用navicat for mysql导入数据文件
a打开navicat for mysql,和localhost本地数据库连接,就可以看到刚才建立的数据库和表,
b可以导入本地的txt数据毁谈文件,注意保持格式正确模余逗,
c下面一步要注意一下,如果数据库中旦卖有中文数据,编码格式一定要选择是中文的GB2312,
d然后间隔符为空格(根据txt中的具体情况来定),
e并选择目标表,将每一列一一对应,即可导入。

阅读全文

与android数据库调用相关的资料

热点内容
有个动漫女主蓝头发是程序员 浏览:996
云服务器资源评估 浏览:882
微云下载文件夹是空的 浏览:3
r9数控车的编程 浏览:403
为什么删不掉ksafe文件夹 浏览:291
理科男学编程用什么电脑 浏览:839
安阳弹性云服务器 浏览:570
压缩空气储罐有效期 浏览:408
英国文学PDF 浏览:175
软件编程需求 浏览:626
广州哪里解压 浏览:253
手机小视频怎么压缩 浏览:915
微信聊天界面源码 浏览:24
seo竞价推广点击价格算法公式 浏览:319
框架结构可以加密吗 浏览:218
python编译器怎么清除 浏览:73
linux全局socks代理 浏览:611
php微信抽奖 浏览:771
压缩算法嵌入式移植 浏览:531
php新手小例子 浏览:233