(一)

知识点:

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的更多相关文章

  1. 在Android中查看和管理sqlite数据库

    在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库位于/data/data/项目包/databas ...

  2. Android中数据库Sqlite的性能优化

    1.索引简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率.(1). 优点大大加快了数据库检索的速度,包括 ...

  3. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  4. Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)

    系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...

  5. Android中数据库的操作流程详解

    Android中数据库的操作方法: 1.Android平台提供了一个数据库辅助类来创建或打开数据库. 这个辅助类继承自SQLiteOpenHelper类.继承和扩展SQLiteOpenHelper类主 ...

  6. ORM数据库框架 greenDAO SQLite MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. ORM数据库框架 LitePal SQLite MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. android 打开 res raw目录 中 数据库文件

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 安卓不能直接打开 res raw 中的 数据库 文件. 通过 资源 获取资源 方法 , ...

  9. Android学习记录(2)—Android中数据库的常见操作

    android中数据库操作是非常常见了,我们会经常用到,操作的方法也有很多种形式,这里我就把最常见的两种形式记录下来了,以备以后用到方便查看.我就不写注释和解释了,因为android数据库的操作和其它 ...

随机推荐

  1. Linux设置虚拟内存-创建和启用Swap交换区

    如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择,如果是SSD硬盘,正常读写速度都在300M ...

  2. vue双向绑定原理

    要了解vue的双向绑定原理,首先得了解Object.defineProperty()方法,因为访问器属性是对象中的一种特殊属性,它不能直接在对象中设置,而必须通过 Object.definePrope ...

  3. JetbrainsCrack

    http://blog.csdn.net/lcyong_/article/details/61205672 http://blog.csdn.net/nn_jbrs/article/details/7 ...

  4. Bzoj4197 寿司晚宴

    Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同 ...

  5. #error#学习方法,如何避免初始化错误

    #error#学习方法,如何避免初始化错误.错误来自:本博客的另一篇文章Demo示例程序源代码: ,01-导航实例-QQ空间.xcodeproj - CYLLoginViewController.mD ...

  6. 【洛谷 P1645】 序列 (差分约束)

    题目链接 差分约束. 设\(s[i]\)表示前\(i\)个位置有多少个数,那么对于一个限制条件\((L,R,C)\),显然有 \[s[R]-s[L-1]>=C\] 于是连一条\(L-1\)到\( ...

  7. Extjs GridPanel 鼠标拖动选中单元格

    本文主要是实现了一个拖动选择单元格并计算的功能

  8. camera摄像原理之二:色彩空间【转】

    转自:http://blog.csdn.net/ghostyu/article/details/7912854 对于sensor 来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV这两种( ...

  9. 【bzoj4636】蒟蒻的数列

    由于数据范围过大,直接线段树会炸,离散化或者动态开点都行. 打个标记在树上,最后把树dfs一边算一下即可. #include<bits/stdc++.h> #define N 100000 ...

  10. Ubuntu16.04 PPA方式安装JDK1.8

    一.删除OpenJDK:   sudo apt-get purge openjdk* 二.添加PPA: root@ubuntu:~# add-apt-repository ppa:webupd8tea ...