android调用数据库,如何在android中调用数据库资源

1,如何在android中调用数据库资源android没办法直接调用远程服务器上数据库的东西,必须通过httppost这个对象来访问服务器端的动态代码,然后动态代码访问数据库,并且将数据返回android端,动态代码php,jsp都可以写在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作 。其中前者主要用于在开发过程中进行调试等工作,后者则为android中主要的使用数据库的方式 。
2,android如何访问SQL数据库Android对数据哭的访问可以使用ContentProvider, ContengResolver 。只能访问内部数据库sqlite 。常用的做法是用WebService来做网络数据库连接,Android通过Http来访问WebService,然后WebService提供对数据库的相关操作 。这样就间接的实现了以Android操作管理SQL Server 数据库 。希望对你有所启发或帮助,祝愉快!如果你说的数据库是在手机里的,那android只支持sqlite这个轻量级的数据库 , 并已经有API提供访问支持,如果你要访问服务端或者通过网络来连接SQL2010,你尝试下能否用网络连接封装jdbc驱动,如果不能,那就只能访问类似struts的请求,让struts来转接到DB了 。应该跟java的差不多的吧,建立连接,然后就是sql语句的事情了
3,android如何访问SQL数据库Android自带的轻量级Sqlite数据库,可以使用android系统API进行访问, 举一个简单的例子:SQLiteDatabase db = getWritableDatabase();String sql = "insert into " + tableName + "(cloumsName) values(" +"cloumsValues)"; db.execSQL(sql, new String[] db.close();哥最近喜欢上了顶贴,因为 , 如果帖子火了,那有哥的功劳 。如果帖子被顶沉了....哥也会很有成就感...因为是哥搞沉的~~大家切记~不要迷恋哥~哥只是一个传说 假如你说的数据库是在手机里的那android只支撑sqlite这个轻量级的数据库并已经有API供给拜访支撑假如你要拜访办事端或者经由过程收集来连接SQL2010你测验测验下可否用收集连接封装jdbc驱动假如不克不及那就只能拜访类似struts的请求让struts来转接到DB了【android调用数据库,如何在android中调用数据库资源】
4,android 怎么调用数据库方法SQLite也支持SQL标准类型,VARCHAR、CHAR、BIGINT等 。创建数据库Android 不自动提供数据库 。在 Android 应用程序中使用 SQLite,必须自己创建数据库 , 然后创建表、索引,填充数据 。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库 , 只要继承 SQLiteOpenHelper 类,就可以创建数据库 。继承了SQLiteOpenHelper的子类,必须实现三个方法:1、构造函数,调用父类 SQLiteOpenHelper 的构造函数 。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null) , 一个代表你正在使用的数据库模型版本的整数 。2、onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据 。3、onUpgrage() 方法,它需要三个参数 , 一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样可以清楚如何把一个数据库从旧的模型转变到新的模型 。android没办法直接调用远程服务器上数据库的东西,必须通过httppost这个对象来访问服务器端的动态代码,然后动态代码访问数据库 , 并且将数据返回android端 , 动态代码php , jsp都可以写android读取数据库可以使用sqlite一些api进行读取,实例如下:/*** 查找一条数据* @param uid*/public User find(Integer uid)SQLiteDatabase db=dbOpenHelper.getReadableDatabase();//创建数据库辅助类Cursor cursor =db.rawQuery("select * from user where uid=?", new String[]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;}5,android 怎么读取数据库中的数据android读取数据库可以使用sqlite一些api进行读取,实例如下:1234567891011121314151617181920/** * 查找一条数据 * @param uid */ publicUser find(Integer uid) SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类 Cursor cursor =db.rawQuery("select * from user where uid=?", newString[] if(cursor.moveToFirst()) intuid2=cursor.getInt(cursor.getColumnIndex("uid")); String uname=cursor.getString(cursor.getColumnIndex("uname")); String uaddress=cursor.getString(cursor.getColumnIndex("uaddress")); User user=newUser(); user.setUid(uid2); user.setUname(uname); user.setUaddress(uaddress); returnuser; } cursor.close(); returnnull; }Android里面Sqlite的使用使用步骤1,创建一个SqliteOpenHelper的子类public class MySqliteOpenHelper extends SQLiteOpenHelper onCreate方法:在第一次调用getReadableDatabase(),getWriteableDatabase()方法里调用【如果磁盘上没有数据库文件就会调用】onOpen方法:在调用getReadableDatabase(),getWriteableDatabase()调用onUpgrade()方法,当数据库版本提升时调用getWritableDatabase()得到可读可写的数据库操作对象 。如果内存不足,该方法会锁定数据库,并抛异常getReadableDatabase()得到可读写的数据库操作对象, , 如果内存不足,数据库就只能写了2,重写onCreate方法public MySqliteOpenHelper(Context context) @Override public void onCreate(SQLiteDatabase db) 3 , 初始化数据库 //创建数据库public void mysqlite(View view)//创建实现工具类DBHelper dh = new DBHelper("test.db",1);//连接数据库 获取数据库实例//getWritableDatabase() 数据写满会报错//getReadableDatabase() 数据写满不会报错SQLiteDatabase sd = dh.getWritableDatabase();sd.close();4,对数据库进行CRUD参考demo:public class DBHelper { private final static String DATABASE_NAME = "TestDB2.db";// 数据库文件名 private final static int VERSION = 1;// 数据库版本 private final static String TABLE_NAME = "users";// 表名 private final static String _ID = "_id";// 编号 private final static String NAME = "name";// 用户名字段 private final static String PASSWORD = "password";// 用户密码 // 操作数据库的类 private SQLiteDatabase database; MySQLiteOpenHepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class MySQLiteOpenHepler extends SQLiteOpenHelper { public MySQLiteOpenHepler(Context context) { super(context, DATABASE_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = "CREATE TABLE " + TABLE_NAME + "( " + _ID + " Integer primary key autoincrement," + NAME + " TEXT, " + PASSWORD + " TEXT)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } public DBHelper(Context context) { hepler = new MySQLiteOpenHepler(context); database = hepler.getWritableDatabase(); } // 添加 public void insert(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.insert(TABLE_NAME, null, values); } // 修改 public void update(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.update(TABLE_NAME, values, _ID + "=?", new String[] { String.valueOf(user.getId()) }); } // 删除 public void delete(int id) { database.delete(TABLE_NAME, _ID + "=?", new String[] { String.valueOf(id) }); }// 查询一个 public User queryById(int id) { User u = null; Cursor cursor = database.query(TABLE_NAME, null, _ID + "=?", new String[] { String.valueOf(id) }, null, null, null); if (cursor.getCount() > 0) { cursor.moveToNext(); u = new User(cursor.getInt(0), cursor.getString(1), cursor.getString(2)); } return u; } }android里面sqlite的使用 使用步骤 1,创建一个sqliteopenhelper的子类 public class mysqliteopenhelper extends sqliteopenhelper { private static final int database_version = 1;//数据库版本 public static final string database_name="user.db";//数据库文件 名 public static final string table_name="user";//表名 //字段名 public static final string id="id"; public static final string name="name"; public static final string age="age"; /** * 构造方法 * @param context :上下文 * @param name :数据文件名 * @param factory :数据库工厂 使用过程中传null * @param version :数据库版本 1 */ public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } /** * 当数据库打开时调用 * @param db 数据库操作对象 */ @override public void onopen(sqlitedatabase db) { super.onopen(db); system.out.println("-------onopen"); } /** * 创建数据库的方法 * @param db 数据库操作对象 crud ---create read update delete */ @override public void oncreate(sqlitedatabase db) { system.out.println("-------oncreate"); } /** *当数据库的版本有提升时调用 * @param db 数据库操作对象 * @param oldversion 老版本号 * @param newversion 新版本号 */ @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { //更新表 //更新数据 system.out.println("-------onupgrade"); } /** * 当数据库版本降低时调用 ---没什么用 * @param db * @param oldversion * @param newversion */ @override public void ondowngrade(sqlitedatabase db, int oldversion, int newversion) { super.ondowngrade(db, oldversion, newversion); system.out.println("-------onupgrade"); }} oncreate方法:在第一次调用getreadabledatabase(),getwriteabledatabase()方法里调用【如果磁盘上没有数据库文件就会调用】 onopen方法:在调用getreadabledatabase() , getwriteabledatabase()调用 onupgrade()方法,当数据库版本提升时调用 getwritabledatabase()得到可读可写的数据库操作对象 。如果内存不足 , 该方法会锁定数据库,并抛异常 getreadabledatabase()得到可读写的数据库操作对象 , ,如果内存不足,数据库就只能写了 2,重写oncreate方法 public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } 3,初始化数据库 //创建数据库 public void mysqlite(view view) { //创建 实现工具类 dbhelper dh = new dbhelper("test.db",1); //连接数据库 获取数据库实例 //getwritabledatabase() 数据写满会报错 //getreadabledatabase() 数据写满不会报错 sqlitedatabase sd = dh.getwritabledatabase(); sd.close(); 4,对数据库进行crud 参考demo: public class dbhelper { private final static string database_name = "testdb2.db";// 数据库文件名 private final static int version = 1;// 数据库版本 private final static string table_name = "users";// 表名 private final static string _id = "_id";// 编号 private final static string name = "name";// 用户名字段 private final static string password = "password";// 用户密码 // 操作数据库的类 private sqlitedatabase database; mysqliteopenhepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class mysqliteopenhepler extends sqliteopenhelper { public mysqliteopenhepler(context context) { super(context, database_name, null, version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } } public dbhelper(context context) { hepler = new mysqliteopenhepler(context); database = hepler.getwritabledatabase(); } // 添加 public void insert(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.insert(table_name, null, values); } // 修改 public void update(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.update(table_name, values, _id + "=?", new string[] { string.valueof(user.getid()) }); } // 删除 public void delete(int id) { database.delete(table_name, _id + "=?", new string[] { string.valueof(id) }); }// 查询一个 public user querybyid(int id) { user u = null; cursor cursor = database.query(table_name, null, _id + "=?", new string[] { string.valueof(id) }, null, null, null); if (cursor.getcount() > 0) { cursor.movetonext(); u = new user(cursor.getint(0), cursor.getstring(1), cursor.getstring(2)); } return u; } }

    推荐阅读