(一)

知识点:

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. 使用MAT分析内存泄露

    使用MAT分析内存泄露 对于大型服务端应用程序来说,有些内存泄露问题很难在测试阶段发现,此时就需要分析JVM Heap Dump文件来找出问题.随着单机内存越来越大,应用heap也开得越来越大,动辄十 ...

  2. javaScript中的this关键字解析

    this是JavaScript中的关键字之一,在编写程序的时候经常会用到,正确的理解和使用关键字this尤为重要.接下来,笔者就从作用域的角度粗谈下自己对this关键字的理解,希望能给到大家一些启示, ...

  3. struts学习笔记(四)

    一. 文件的上传: 1). 表单需要注意的 3 点 2). Struts2 的文件上传实际上使用的是 Commons FileUpload 组件, 所以需要导入 commons-fileupload- ...

  4. pageContext对象的用法详述

    pageContext对象  这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据. pageContext是PageContext类的实例,使用pageContext可以访问page.re ...

  5. Bzoj1917 [Ctsc2010]星际旅行

    Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 185  Solved: 118 Description 公元3000年,地球联盟已经攻占了银河系内的N ...

  6. [bzoj3231][SDOI2008]递归数列——矩阵乘法

    题目大意: 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj和 cj ...

  7. IE 6 position不支持fixed属性的解决方案

    抛出另一个问题:IE7已经支持position:fixed了,而IE6却不支持,解决这个问题的办法如下: 现在有一个元素的id是element,它需要实现fixed效果,我们既想要它在正常的浏览器下使 ...

  8. EffectiveJava读书笔记

    less, but is more. 创建和销毁对象 避免创建不必要对象 消除过期的对象引用 使可变性最小 泛型 用标记接口定义类型 检查参数有效性 返回零长度的数组或集合,而不是null 需要精确答 ...

  9. 使用Frida简化Android端应用安全测试

    @author : Dlive 在对Android应用进行Web漏洞测试时,经常遇到一种情况:HTTP传输的数据带有签名字段 处理这种情况的方法通常是逆向签名算法,但是如果算法在so中,而且so加壳了 ...

  10. 干货:MySQL数据库优化参考

    本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体 ...