Androids中数据库的使用SQLite
(一)
知识点:
SQLite3支持的数据类型:NULL,INTEGER,REAL(浮点数字),TEXT(字符串文本),BLOB(二进制对象),虽然他支持的类型只有五种,但实际上sqlite3也接受varchar(n),char(n)等数据类型
1.效果图:点击增加数据,显示增加完毕,点击查询数据,可以查看加进去的数据 。。。。
2.布局
(1)activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.administrator.hello.MainActivity"
android:orientation="vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="数据库使用" />
<Button
android:id="@+id/btn_add"
android:onClick="doClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="增加数据"/>
<Button
android:id="@+id/btn_query"
android:onClick="doClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据"/>
<Button
android:id="@+id/btn_update"
android:onClick="doClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="修改数据"/>
<Button
android:id="@+id/btn_delete1"
android:onClick="doClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除指定数据"/>
<Button
android:id="@+id/btn_delete2"
android:onClick="doClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除全部数据"/> <ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
(2)item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
> <TextView
android:id="@+id/user_Id"
android:layout_width="50dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/user_Name"
android:layout_width="100dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/user_Age"
android:layout_width="50dp"
android:layout_height="wrap_content" /> </LinearLayout>
3.UserDao.java
package com.example.administrator.hello.Dao; /**
* Created by Administrator on 2018/5/25.
*/ import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.example.administrator.hello.DBUtil.MySQLiteHelper;
import com.example.administrator.hello.entity.User; import java.util.ArrayList;
import java.util.List; /**
* Created by Administrator on 2018/5/24.
*/
public class UserDao {
private MySQLiteHelper mySQLiteHelper;
private SQLiteDatabase db; public UserDao(Context context) {
mySQLiteHelper = new MySQLiteHelper(context);
db = mySQLiteHelper.getReadableDatabase(); //获取数据库对象
} public void insertUser() {
//使用字符串拼接方式操作数据
String sql = "insert into t_user(userName,userAge) values ('zhangsan',20)";
db.execSQL(sql);
//通过占位符的形式进行数据操作
db.execSQL("insert into t_user(userName,userAge) values(?,?)", new Object[]{"lisi", 21});
//使用系统自带的方法实现数据操作
ContentValues values = new ContentValues();
values.put("userName", "wangwu");
values.put("userAge", 22);
db.insert("t_user", null, values); } public List<User> query() {
List<User> list = new ArrayList<>();
Cursor cursor = db.rawQuery("select * from t_user", null);
if (cursor != null) {
while (cursor.moveToNext()) {
int userId = cursor.getInt(cursor.getColumnIndex("userId"));
String userName = cursor.getString(1);
int userAge = cursor.getInt(2);
User user = new User(userId, userName, userAge);
list.add(user); }
}
cursor.close();
return list; } public void update(){
db.execSQL("update t_user set userName=? where userId =?",new Object[]{"李四",2});
ContentValues values = new ContentValues();
values.put("userName","王五");
db.update("t_user",values,"userId=?",new String[]{3+""});
}
public void update(String name,String id){
db.execSQL("update t_user set userName='"+name+"' where userId="+id);
} public void delete(){
//
db.execSQL("delete from t_user where userId ='1'");
//
db.execSQL("delete from t_user where userId=?",new Object[]{"2"});
//
db.delete("t_user","userId=?",new String[]{"3"});
}
public void deleteAll(){
db.execSQL("delete from t_user");
} }
4.MySQLiteHelper
package com.example.administrator.hello.DBUtil; /**
* Created by Administrator on 2018/5/25.
*/ import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; /**
* Created by Administrator on 2018/5/24.
*/
public class MySQLiteHelper extends SQLiteOpenHelper {
private static final String NAME = "mydata.db";
private static final int version = 1; public MySQLiteHelper(Context context) { super(context, NAME, null, version);
} @Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table t_user(userId integer primary key autoincrement,userName text not null,userAge integer not null)"); } @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}
5.User.java
package com.example.app5.entity; /**
* Created by Administrator on 2018/5/24.
*/
public class User {
private int userId;
private String userName;
private int useAge; public User(int userId, String userName, int useAge) {
this.userId = userId;
this.userName = userName;
this.useAge = useAge;
} public int getUserId() {
return userId;
} public void setUserId(int userId) {
this.userId = userId;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public int getUseAge() {
return useAge;
} public void setUseAge(int useAge) {
this.useAge = useAge;
}
}
6.MainActivity.java
package com.example.administrator.hello; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.ListViewCompat;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast; import com.example.administrator.hello.Dao.UserDao;
import com.example.administrator.hello.entity.User; import java.util.List; public class MainActivity extends AppCompatActivity {
private UserDao userDao;
private List<User> list;
private MyAapter myAapter;
private ListView listView; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userDao = new UserDao(MainActivity.this);
listView = (ListView) findViewById(R.id.lv);
} public void doClick(View view) {
switch (view.getId()) {
case R.id.btn_add:
userDao.insertUser();
Toast.makeText(MainActivity.this, "插入数据成功", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_query:
list = userDao.query();
myAapter = new MyAapter(list, MainActivity.this);
listView.setAdapter(myAapter);
break;
case R.id.btn_update:
String name="张三" ;
String id ="1";
userDao.update(name,id);
userDao.update();
Toast.makeText(MainActivity.this, "修改数据成功", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_delete1:
userDao.delete();
Toast.makeText(MainActivity.this, "删除指定数据成功", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_delete2:
userDao.deleteAll();
Toast.makeText(MainActivity.this, "删除全部数据成功", Toast.LENGTH_SHORT).show();
break; }
}
}
7.MyAapter
package com.example.app5; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; import com.example.app5.entity.User; import java.util.List; /**
* Created by Administrator on 2018/5/24.
*/
public class MyAapter extends BaseAdapter {
private Context context;
private List<User> list; public MyAapter(List<User> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
} @Override
public Object getItem(int position) {
return list.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewH viewH;
if (convertView==null){
convertView= LayoutInflater.from(context).inflate(R.layout.item,null);
viewH = new ViewH();
viewH.tv_id=(TextView)convertView.findViewById(R.id.user_Id);
viewH.tv_age=(TextView)convertView.findViewById(R.id.user_Age);
viewH.tv_name=(TextView)convertView.findViewById(R.id.user_Name);
convertView.setTag(viewH);
}else {
viewH=(ViewH)convertView.getTag();
}
viewH.tv_id.setText(list.get(position).getUserId()+"");
viewH.tv_name.setText(list.get(position).getUserName()+"");
viewH.tv_age.setText(list.get(position).getUseAge()+"");
return convertView;
} class ViewH{
private TextView tv_id;
private TextView tv_age;
private TextView tv_name;
}
}
Androids中数据库的使用SQLite的更多相关文章
- 在Android中查看和管理sqlite数据库
在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库位于/data/data/项目包/databas ...
- Android中数据库Sqlite的性能优化
1.索引简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率.(1). 优点大大加快了数据库检索的速度,包括 ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)
系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...
- Android中数据库的操作流程详解
Android中数据库的操作方法: 1.Android平台提供了一个数据库辅助类来创建或打开数据库. 这个辅助类继承自SQLiteOpenHelper类.继承和扩展SQLiteOpenHelper类主 ...
- ORM数据库框架 greenDAO SQLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- ORM数据库框架 LitePal SQLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- android 打开 res raw目录 中 数据库文件
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 安卓不能直接打开 res raw 中的 数据库 文件. 通过 资源 获取资源 方法 , ...
- Android学习记录(2)—Android中数据库的常见操作
android中数据库操作是非常常见了,我们会经常用到,操作的方法也有很多种形式,这里我就把最常见的两种形式记录下来了,以备以后用到方便查看.我就不写注释和解释了,因为android数据库的操作和其它 ...
随机推荐
- Ubuntu系统iptables规则的查看和清除
系统不支持service iptables restart,service iptables status,如何查看与清除iptable的规则呢? 一 iptables查看基本语法 iptables ...
- JAVA 成员访问权限修饰符
修饰符 类内部 package内 子类 其他 public 允许 允许 ...
- bzoj 1692: [Usaco2007 Dec]队列变换 ——二分+hash
Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席 ...
- Vijos 1232 核电站问题
核电站问题 描述 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 现在,请你计算:对于给定的N和M,求不发生爆炸的放置核物 ...
- bzoj 1951 lucas crt 费马小定理
首先假设输入的是n,m 我们就是要求m^(Σ(c(n,i) i|n)) mod p 那么根据费马小定理,上式等于 m^(Σ(c(n,i) i|n) mod (p-1)) mod p 那么问题的关键就 ...
- jquery with ajax
with session storage: 1.ajax请求可以放在 $(document).ready(function (){...}); 里. 2. $.ajax({ url: "/a ...
- Linux rar乱码
大家都知道,Linux下的中文乱码是一个很烦的事情,在这里我叫大家如何解决这个问题. rar乱码 ubunut下打开rar包,如果里面有中文就会显示乱码,其实就觉这个问题最简单了,只要把进入新立得,搜 ...
- Google Intern
申请 事情应该从去年(2013)说起,好基友从百度离职跳到了Google,回学校打印本科成绩单,然后晚上在scuacm群里,结果Dr. zuo问我想去实习么,正好有学长可以内推. 于是乎写了简历,然后 ...
- locust===Writing a locustfile
The Locust class A locust class represents one user (or a swarming locust if you will). Locust will ...
- requests-html的js执行功能简单使用
#!/usr/bin/env python # encoding: utf-8 import asyncio from requests_html import HTMLSession import ...