在本文中,我们将带你了解android–从sqlite数据库创建json对象在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的androidSQLite数据库总结、AndroidSqlite
在本文中,我们将带你了解android – 从sqlite数据库创建json对象在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的android SQLite数据库总结、Android Sqlite数据库架构、Android Sqlite数据库详解、Android studio 连接SQLite数据库 +创建数据库+创建数据库表。
本文目录一览:- android – 从sqlite数据库创建json对象
- android SQLite数据库总结
- Android Sqlite数据库架构
- Android Sqlite数据库详解
- Android studio 连接SQLite数据库 +创建数据库+创建数据库表
android – 从sqlite数据库创建json对象
我需要从sqlite数据库创建JSON OBJECT.而且我想在我的服务器中存储JSON OBJECT.我想将我的sqlite数据库中的整个表转换为JSON对象,这样我的数据就不会在我的服务器中占用太多空间.这可能吗?如果是这样,有人可以通过提供适当的资源来帮助我吗?
解决方法:
从sqlite数据库创建JSON OBJECT – 我试过这样的事情.你的意思是将我的sqlite数据库中的整个表转换为Json对象???
JSONObject jsonObject = new JSONObject();
ArrayList<DrugDetails> drugDetails = DataInterface
.getSelectedDrugDetails();//this should be ur db query which returns the arraylist
if (drugDetails != null && drugDetails.size() > 0) {
JSONArray array = new JSONArray();
for (DrugDetails selectedDrugDetails : drugDetails) {
JSONObject json = new JSONObject();
json.put(APPOINTMENT_ID, ""+"selectedDrugDetails.getAppoinmentID()");
json.put(DOCUMENT_ID, ""+selectedDrugDetails.getId());
array.put(json);
}
jsonObject.put(COLLAteraL_LIST, array);
}
android SQLite数据库总结
sqlite
sqlite是一种超轻量级的嵌入式数据库,大小只有几百KB,但是其语法支持标准sql语法,同时还遵循了数据库的ACID事务,所以学过其他数据库的开发人员都很容易掌握其使用。
sql语法就不介绍了,直接看在android中的使用
sqliteOpenHelper――封装好的数据库操作辅助类,需重写
重写方法
onCreate:初始化数据库,创建表,添加初始数据
onUpgrade:数据库版本升级时的数据库操作,如备份删除数据库等
常用方法
getReadableDatabase() 获取sqliteDatabase对象,操作数据库
getWritableDatabase() 获取sqliteDatabase对象,操作数据库
区别:在磁盘空间满或不可写时,1方法将获得只读的数据库对象,而2方法会报错,在正常情况下,获取到的都是可读写的数据库对象。
import android.content.Context; import android.database.sqlite.sqliteDatabase; import android.database.sqlite.sqliteOpenHelper; public class DBHelper extends sqliteOpenHelper { private static final String name="my";//数据库名 private static final int version=1;//版本号 //重写构造方法的时候选择参数少的一项 public DBHelper(Context context) { //1:上下文 2:数据库名称 3:游标创建工厂 4:数据库版本 版本只能是整数 1 2 3.. super(context,name,null,version); } //数据库的初始化 sqliteDatabase数据库操作对象 //一般只在第一次运行和版本更新的时候调用 @Override public void onCreate(sqliteDatabase db) { //创建数据库 主键默认自增 db.execsql("create table student(" + "_id integer not null primary key autoincrement," + "name varchar(20)," + "phone varchar(11)," + "gender varchar(2))"); //添加一条测试数据 db.execsql("insert into student values(null,?,?)",new Object[]{"小黑","12345678901","男"}); } /** * 在版本升级的时候调用 * 修改version 为2 表示版本升级 就会调用这个方法 * @param db 数据库操作对象 * @param oldVersion 旧版本号 * @param newVersion 新版本号 */ @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { } }
在android数据库的创建是需要创建对象才能创建的
在activity类中创建出一个数据库类对象
创建好数据对象就可以操作数据了 通过sqliteDatabase获取 两种获取方法的区别上面已经提到过了
//创建数据 DBHelper helper =new DBHelper(this); //调用数据操作对象 sqliteDatabase dbWrite=helper.getWritableDatabase(); sqliteDatabase dbRead=helper.getReadableDatabase();
sqliteDatabase给我们提供了很多操作数据的方法
删除:(int) delete(String table,String whereClause,String[] whereArgs)
table: 表名
whereClause:where条件 列名 占位符 id=?
whereArgs:参数值数组
添加:(long) insert(String table,String nullColumnHack,ContentValues values)
nullColumnHack:为空列
ContentValues values:通过键值对存储添加的数据 key为列 value为值
insert方法 底层是通过拼接字符串的方式 如果ContentValues是空的 拼接成的sql语句无法执行会报错 所以给一个可以为空的列当ContentValues为空时也可以执行 有兴趣的可以看一下源码
更新:(int) update(String table,ContentValues values,String[] whereArgs)
参数意思同上
查询:(Cursor) query(boolean distinct,String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)
返回值是一个游标 这个query参数较多 简单的查询就还是写一条sql语句简单点
boolean distinct 去重复
String table 表名
String[] columns要查询的列
String selection查询条件
String[] selectionArgs查询参数值
String groupBy分组
String having分组条件
String orderBy排序
String limit分页查询限制
关闭数据库:(void) close()
执行一条sql语句:(void) execsql(String sql) 增删改查
查询查询sql:(Cursor) rawQuery(String sql,String[] selectionArgs)
事务
try { db.beginTransaction();//开启事务 // db.update(); // db.insert(); db.setTransactionSuccessful(); //没有设置事物成功 finally就会回滚 } catch (Exception e) { e.printstacktrace(); }finally { db.endTransaction(); }
贴代码咯 执行sql语句 和封装好的方法
查询
private void query() { StringBuffer sb=new StringBuffer("select * from student where 1=1"); //参数集合 List<String> params=new ArrayList<>(); if(!TextUtils.isEmpty(id)){ sb.append(" and _id=?"); params.add(id); } if(!TextUtils.isEmpty(phone)){ sb.append(" and phone=?"); params.add(phone); } if(!TextUtils.isEmpty(name)){ sb.append(" and name=?"); params.add(name); } if(!TextUtils.isEmpty(gender)){ sb.append(" and gender=?"); params.add(gender); } sqliteDatabase db=helper.getReadableDatabase(); String [] projection=new String [params.size()]; params.toArray(projection); //返回值 游标 Cursor cursor=db.rawQuery(sb.toString(),projection); //判断游标是否为空,是否有一个值 while(cursor!=null&&cursor.movetoNext()){ // getColumnIndex获取列的下标 cursor.getXXXX()获取指定列的值 String name=cursor.getString(cursor.getColumnIndex("name")); Integer id=cursor.getInt(cursor.getColumnIndex("_id")); } }
用不到的参数就让它为空吧 遍历数据就while循环就好咯
Cursor c = db.query("student",null);//查询并获得游标
更新
private void update() { StringBuffer sb=new StringBuffer("update student set "); List params=new ArrayList(); if(!TextUtils.isEmpty(phone)){ sb.append("phone=?,"); params.add(phone); } if(!TextUtils.isEmpty(name)){ sb.append("name=?,"); params.add(name); } if(!TextUtils.isEmpty(gender)){ sb.append("gender=?,"); params.add(gender); } if (params.size()!=0){ //更新操作拼接字符串末尾有一个","需要去除 //删除最后一位的“,” sb.setLength(sb.length()-1); sb.append(" where 1=1"); //通过id指定 更新那行数据 if(!TextUtils.isEmpty(id)){ sb.append(" and _id=?"); params.add(id); }else{ Toast.makeText(this,"请填写id",Toast.LENGTH_SHORT).show(); return; } sqliteDatabase db=helper.getWritableDatabase(); Object [] o=new Object[params.size()]; params.toArray(o);//将数据存放到指定的数组中 db.execsql(sb.toString(),o); } }
ContentValues cv = new ContentValues();//实例化ContentValues cv.put("name","123");//添加要更改的字段及内容 String whereClause = "phone=?";//修改条件 String[] whereArgs = {"12312313213"};//修改条件的参数 db.update("student",cv,whereClause,whereArgs);//执行修改
删除
private void delete() { getAllText(); //拼接sql语句 StringBuffer sb=new StringBuffer("delete from student where 1=1"); //保存参数的list List params=new ArrayList(); //判断条件 动态拼接 if(!TextUtils.isEmpty(id)){ sb.append(" and _id=?"); params.add(id); } if(!TextUtils.isEmpty(phone)){ sb.append(" and phone=?"); params.add(phone); } if(!TextUtils.isEmpty(name)){ sb.append(" and name=?"); params.add(name); } if(!TextUtils.isEmpty(gender)){ sb.append(" and gender=?"); params.add(gender); } sqliteDatabase db=helper.getWritableDatabase(); if (params.size()!=0){ Object [] o=new Object[params.size()]; params.toArray(o);//将数据存放到指定的数组中 //执行删除 db.execsql(sb.toString(),o); }else{ db.execsql(sb.toString()); } Toast.makeText(this,"删除完成",Toast.LENGTH_SHORT).show(); }
String whereClause = "name=?";//删除的条件 String[] whereArgs = {"123"};//删除的条件参数 db.delete("student",whereArgs);//执行删除
增加
private void insert() {//保存数据到object数组 Object [] o=new Object[]{name,phone,gender}; //获取数据库操作对象 sqliteDatabase db=helper.getWritableDatabase(); //sql:sql语句 bingArgs:参数数组 db.execsql("insert into student values(null,o); //关闭连接 db.close(); Toast.makeText(this,"增加成功",Toast.LENGTH_SHORT).show(); }
ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据 cv.put("name","123"); db.insert("student",cv);//执行插入操作
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!
Android Sqlite数据库架构
我想我已经用android创建了一个sqllite数据库,但每次我去做一个插入它声称一个列不存在.如何查看模式,是在对象创建时调用的onCreate方法?
解决方法:
你可以用代码来做. sqlite有一个名为“sqlite_master”的表,它保存架构信息.
/**
* Get all table Details from the sqlite_master table in Db.
*
* @return An ArrayList of table details.
*/
public ArrayList<String[]> getDbTableDetails() {
Cursor c = db.rawQuery(
"SELECT name FROM sqlite_master WHERE type='table'", null);
ArrayList<String[]> result = new ArrayList<String[]>();
int i = 0;
result.add(c.getColumnNames());
for (c.movetoFirst(); !c.isAfterLast(); c.movetoNext()) {
String[] temp = new String[c.getColumnCount()];
for (i = 0; i < temp.length; i++) {
temp[i] = c.getString(i);
}
result.add(temp);
}
return result;
}
更简单的方法是在模拟器上运行它.
>开放ddms观点
>查找数据/数据/ PACKAGENAME / database / YOURFILE
>单击图中右上角的数据库按钮.
打开
Android Sqlite数据库详解
什么是sqlite
Android自带的嵌入式数据库,可使用sql语言
怎么使用
sqlite通过sqliteOpenHelper类来管理数据库
sqliteOpenHelper 的常用方法
方法名 | 方法介绍 |
---|---|
getWritableDatabase() | 创建 or 打开 可读/写的数据库(通过 返回的sqliteDatabase对象 进行操作) |
getReadableDatabase() | 创建 or 打开 可读的数据库(通过 返回的sqliteDatabase对象 进行操作) |
onCreate(sqliteDatabase db) | 数据库第1次创建时 则会调用,即 第1次调用getWritableDatabase() 和 getReadableDatabase()时调用 在继承sqliteOpenHelper类的子类中复写 |
onUpgrade(sqliteDatabase db, int oldVersion, int newVersion) | 数据库升级时自动调用在继承sqliteOpenHelper类的子类中复写 |
close() | 关闭数据库 |
(Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) | 查询数据 |
(Cursor) rawQuery(String sql, String[] selectionArgs) | 运行一个预置的sql语句,返回带游标的数据集(与上面的语句最大的区别 = 防止sql注入) |
(int) delete(String table,String whereClause,String[] whereArgs) | 删除数据行 |
(long) insert(String table,String nullColumnHack,ContentValues values) | 添加数据行 |
(int) update(String table, ContentValues values, String whereClause, String[] whereArgs) | 更新数据行 |
(void) execsql(String sql) | 执行一个sql语句,可以是一个select or 其他sql语句 即 直接使用String类型传入sql语句 & 执行 |
实际使用
使用步骤
- 自定义数据库子类(继承sqliteOpenHelper类)
- 创建数据库
- 操作数据库(增删改查)
下面我们依次介绍
- 自定义数据库子类(继承sqliteOpenHelper类)
/**
* 创建数据库子类,继承自sqliteOpenHelper类
* 需 复写 onCreat()、onUpgrade()
*/
public class DatabaseHelper extends sqliteOpenHelper {
// 数据库版本号
private static Integer Version = 1;
/**
* 构造函数
* 在sqliteOpenHelper的子类中,必须有该构造函数
*/
public DatabaseHelper(Context context, String name, sqliteDatabase.CursorFactory factory,
int version) {
// 参数说明
// context:上下文对象
// name:数据库名称
// param:一个可选的游标工厂(通常是 Null)
// version:当前数据库的版本,值必须是整数并且是递增的状态
// 必须通过super调用父类的构造函数
super(context, name, factory, version);
}
/**
* 复写onCreate()
* 调用时刻:当数据库第1次创建时调用
* 作用:创建数据库 表 & 初始化数据
* sqlite数据库创建支持的数据类型: 整型数据、字符串类型、日期类型、二进制
*/
@Override
public void onCreate(sqliteDatabase db) {
// 创建数据库1张表
// 通过execsql()执行sql语句(此处创建了1个名为person的表)
String sql = "create table person(id integer primary key autoincrement,name varchar(64),address varchar(64))";
db.execsql(sql);
// 注:数据库实际上是没被创建 / 打开的(因该方法还没调用)
// 直到getWritableDatabase() / getReadableDatabase() 第一次被调用时才会进行创建 / 打开
}
/**
* 复写onUpgrade()
* 调用时刻:当数据库升级时则自动调用(即 数据库版本 发生变化时)
* 作用:更新数据库表结构
* 注:创建sqliteOpenHelper子类对象时,必须传入一个version参数,该参数 = 当前数据库版本, 若该版本高于之前版本, 就调用onUpgrade()
*/
@Override
public void onUpgrade(sqliteDatabase db, int oldVersion, int newVersion) {
// 参数说明:
// db : 数据库
// oldVersion : 旧版本数据库
// newVersion : 新版本数据库
// 使用 sql的ALTER语句
String sql = "alter table person add sex varchar(8)";
db.execsql(sql);
}
}
- 创建数据库
// 步骤1:创建DatabaseHelper对象
// 注:此时还未创建数据库
sqliteOpenHelper dbHelper = new DatabaseHelper(sqliteActivity.this,"test_carson");
// 步骤2:真正创建 / 打开数据库
sqliteDatabase sqliteDatabase = dbHelper.getWritableDatabase(); // 创建 or 打开 可读/写的数据库
sqliteDatabase sqliteDatabase = dbHelper.getReadableDatabase(); // 创建 or 打开 可读的数据库
- 操作数据库(增删改查)
1 插入数据库
/**
* 操作1:插入数据 = insert()
*/
// a. 创建ContentValues对象
ContentValues values = new ContentValues();
// b. 向该对象中插入键值对
values.put("id", 1);
values.put("name", "carson");
//其中,key = 列名,value = 插入的值
//注:ContentValues内部实现 = HashMap,区别在于:ContenValues Key只能是String类型,Value可存储基本类型数据 & String类型
// c. 插入数据到数据库当中:insert()
sqliteDatabase.insert("user", null, values);
// 参数1:要操作的表名称
// 参数2:sql不允许一个空列,若ContentValues是空,那么这一列被明确的指明为NULL值
// 参数3:ContentValues对象
// 使用sql语句插入
String sql = "insert into user (id,name) values (1,'carson')";
db.execsql(sql) ;
2 修改数据库
/**
* 操作2:修改数据 = update()
*/
// a. 创建一个ContentValues对象
ContentValues values = new ContentValues();
values.put("name", "zhangsan");
// b. 调用update方法修改数据库:将id=1 修改成 name = zhangsan
sqliteDatabase.update("user", values, "id=?", new String[] { "1" });
// 参数1:表名(String)
// 参数2:需修改的ContentValues对象
// 参数3:WHERE表达式(String),需数据更新的行; 若该参数为 null, 就会修改所有行;?号是占位符
// 参数4:WHERE选择语句的参数(String[]), 逐个替换 WHERE表达式中 的“?”占位符;
// 注:调用完upgrate()后,则会回调 数据库子类的onUpgrade()
// 注:也可采用sql语句修改
String sql = "update [user] set name = 'zhangsan' where id="1";
db.execsql(sql);
3 删除数据
/**
* 操作3:删除数据 = delete()
*/
// 删除 id = 1的数据
sqliteDatabase.delete("user", "id=?", new String[]{"1"});
// 参数1:表名(String)
// 参数2:WHERE表达式(String),需删除数据的行; 若该参数为 null, 就会删除所有行;?号是占位符
// 参数3:WHERE选择语句的参数(String[]), 逐个替换 WHERE表达式中 的“?”占位符;
// 注:也可采用sql语句修改
String sql = "delete from user where id="1";
db.execsql(sql);
4 查询数据
/**
* 操作4:查询数据1 = rawQuery()
* 直接调用 SELECT 语句
*/
Cursor c = db.rawQuery("select * from user where id=?",new Stirng[]{"1"});
// 返回值一个 cursor 对象
// 通过游标的方法可迭代查询结果
if(cursor.movetoFirst()) {
String password = c.getString(c.getColumnIndex("password"));
}
//Cursor对象常用方法如下:
c.move(int offset); //以当前位置为参考,移动到指定行
c.movetoFirst(); //移动到第一行
c.movetoLast(); //移动到最后一行
c.movetoPosition(int position); //移动到指定行
c.movetoPrevIoUs(); //移动到前一行
c.movetoNext(); //移动到下一行
c.isFirst(); //是否指向第一条
c.isLast(); //是否指向最后一条
c.isBeforeFirst(); //是否指向第一条之前
c.isAfterLast(); //是否指向最后一条之后
c.isNull(int columnIndex); //指定列是否为空(列基数为0)
c.isClosed(); //游标是否已关闭
c.getCount(); //总数据项数
c.getPosition(); //返回当前游标所指向的行数
c.getColumnIndex(String columnName);//返回某列名对应的列索引值
c.getString(int columnIndex); //返回当前行指定列的值
// 通过游标遍历1个名为user的表
Cursor result=db.rawQuery("SELECT _id, username, password FROM user");
result.movetoFirst();
while (!result.isAfterLast()) {
int id=result.getInt(0);
String name=result.getString(1);
String password =result.getString(2);
// do something useful with these
result.movetoNext();
}
result.close();
// 若查询是动态的,使用该方法会复杂。此时使用 query() 会方便很多
// 注:无法使用sql语句,即db.execsql(sql);
/**
* 操作4:查询数据2 = query()
* 直接调用 SELECT 语句
*/
// 方法说明
db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy);
db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);
db.query(String distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);
// 参数说明
// table:要操作的表
// columns:查询的列所有名称集
// selection:WHERE之后的条件语句,可以使用占位符
// groupBy:指定分组的列名
// having指定分组条件,配合groupBy使用
// orderBy指定排序的列名
// limit指定分页参数
// distinct可以指定“true”或“false”表示要不要过滤重复值
// 所有方法将返回一个Cursor对象,代表数据集的游标
// 具体使用
Cursor cursor = sqliteDatabase.query("user", new String[] { "id","name" }, "id=?", new String[] { "1" }, null, null, null);
// 参数1:(String)表名
// 参数2:(String[])要查询的列名
// 参数3:(String)查询条件
// 参数4:(String[])查询条件的参数
// 参数5:(String)对查询的结果进行分组
// 参数6:(String)对分组的结果进行限制
// 参数7:(String)对查询的结果进行排序
// 注:无法使用sql语句,即db.execsql(sql);
5 关闭数据库
/**
* 操作5:关闭数据库 = close()
* 注:完成数据库操作后,记得调用close()关闭数据库,从而释放数据库的连接
*/
sqliteDatabase.close();
6 删除数据库
/**
* 操作6:删除数据库 = deleteDatabase()
*/
// 删除 名为person的数据库
deleteDatabase("test.db");
特别注意
- 除了“查询”,所有的数据库操作都可使用 sql 语句,即使用下列方法代替:
db.executesql(String sql);
db.executesql(String sql, Object[] bindArgs);
// sql语句中使用占位符,参数2 = 实际的参数集
- 使用建议:都使用sql语句,因为:sql语句 通用 & 简单
- 原生的方法insert()、delete()等方法具备多个参数,使用复杂
不会sql语句怎么办?
我总结了常用的sql语句
参考:https://www.jianshu.com/p/8e3f294e2828
Android studio 连接SQLite数据库 +创建数据库+创建数据库表
Android studio 之数据库的使用 连接创建sqlite
大家好,欢迎来到寒依。
相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻”
我使用的工具是 Intillij idea 专业版 但是方法都一样 因为 Intellij idea 是Android studio 的祖宗 方法都是一样
Intellij idea专业版 yyds
相信你能看到这篇文章 肯定是在学习Android studio 连接数据库时遇到啦问题。哪恭喜你,你今生都很幸运,不然也不可能你遇到我,哪下面呢就让我给下面带来最精彩都得教程。相信你也会觉得非常的简单。
如果你是大佬就单纯想来看看我,那就当我没说,还请大佬来指点指点,必将感激不敬。
不废话啦, 傻瓜式教程马上开始。小板凳坐好啦,下面才是学习Android 开发正确的打开方式。
sqlite 为Android studio 自带 无需下载
Android studio 接数据库(sqlite),创建数据库
第一步 新建一个新的Android 项目 不会看图
新建Android 选择一个空的(Empty Activity)项目 接着点击 下一步
Name 自己取就ok 语言Language 选择 java 点击完成
接下来才是最精彩的时刻 竖起小耳朵 张大眼睛盯好啦 (新建一个类 )
DbContect.java
package com.example.dbproject;
import android.content.Context;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteOpenHelper;
import android.widget.Toast;
public class DbContect extends sqliteOpenHelper {
private static final int VERSION=1;
private static final String dbnAME="Users.db"; // 创建数据库名叫 Users
private Context mContext;
public DbContect(Context context){
super(context,dbnAME,null,VERSION);
mContext = context;
}
//创建数据库
public void onCreate(sqliteDatabase db){
//创建密码表 pwd_tb
db.execsql("create table pwd_tb (pwd varchar(20) primary key)");
//创建收入表 user_tb
db.execsql("create table user_tb(_id integer primary key autoincrement,money decimal," +
" time varchar(10),type varchar(10),handler varchar(100),mark varchar(200))");
}
//数据库版本更新
public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion)
{
db.execsql("drop table if exists pwd_tb");
db.execsql("drop table if exists user_tb");
onCreate(db);
}
}
再来到 activate_main.xml
activaty_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/create"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00BCD4"
android:textSize="22dp"
android:text="点击创建Users数据库"
>
</Button>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
再打开 MainActivaty .java
MainActivaty .java
package com.example.dbproject;
import android.database.sqlite.sqliteDatabase;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
DbContect helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper=new DbContect( MainActivity.this);
Button btn=findViewById(R.id.create);
btn.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View V) {
sqliteDatabase db=helper.getWritableDatabase();
}
});
}
}
好啦 代码完事 刚才是最精彩的时刻 现在到啦激动人心的时候
测试一下是否成功 和数据可视化 精彩即将呈现
运行项目
点开模拟器 小手机
别急 还没完事 结果还没出呢 再来到
此时在右下角会跳出一个东西
到第二个data 下面找到
直接看图吧 不想打字啦
接下来可视化
方法一 :
嘿嘿 出来啦 激动不激动
可视化方式二:
将数据库保持下来 用其他的可视化工具打开 直接将 保存的 Users.db 托到 Navicat
直接托进去 就ok
好啦 老师再敢问你学习Android studio数据库的使用中有没有什么困难的时候就可以很有底气的跟她说 “老师我没有遇到问题 ,学习中畅行无阻”
教程完毕 欢迎 投稿提问
也欢迎大佬指导
谢谢大家 !
我们今天的关于android – 从sqlite数据库创建json对象的分享已经告一段落,感谢您的关注,如果您想了解更多关于android SQLite数据库总结、Android Sqlite数据库架构、Android Sqlite数据库详解、Android studio 连接SQLite数据库 +创建数据库+创建数据库表的相关信息,请在本站查询。
本文标签: