(一)

知识点:

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. source改变当前路径

    转摘自:http://hi.baidu.com/homappy/item/90e416525d2faf958c12edb7 Shell 脚本执行有三种方法 bash 脚本名 sh 脚本名 chmod ...

  2. java消息中间件入门

    消息中间件来解耦服务调用 比如1个登录系统,登录的话需要调用很多系统的其他服务,如果中间调用失败,可能会导致登录信息一致无法返回,同时也增加了系统的耦合度.而用消息中间件的话,则是不发送服务到其他系统 ...

  3. 解决tomcat不支持中文路径的问题

    问题描述: 开发文件下载功能时,因为需求比较简单,要求下载一个说明文件.于是,直接给出了文件所在服务器的地址,通过链接直接下载此文件(因需求简单,未考虑安全方面的问题-_-||). 在这个过程中,文件 ...

  4. PCIe 中的Capability 结构的寻址

    PCI-X 和PCIe 总线规范要求其设备必须支持Capabilities 结构.在PCI 总线的基本配置空间中,包含一个Capabilities Pointer 寄存器,该寄存器存放Capabili ...

  5. NPOI的使用Excel模板导出 可插入到指定行

    Excel模版建议把需要添加数据行的样式设置好 模版样式,导出后效果 [2017-11-22 对获取需插入数据的首行样式有时为空报错修改] /// <summary> /// 根据模版导出 ...

  6. iOS 中捕获程序崩溃日志 (2014-04-22 17:35:59)

    http://blog.sina.com.cn/s/blog_b71d24920101ky2d.html iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软 ...

  7. glib windows下编译

    记录的比较粗糙,但是绝对可行的 一些小的瑕疵以后再解决吧 (android版本的过几天再贴,移植到android已经通过) msys+mingw包下载: http://sourceforge.net/ ...

  8. Linux上Core Dump文件的形成和分析

    原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...

  9. python--celery

    有些时候我们的一些任务比较耗时,比如我们写了一个网站,用户注册的时候需要发送邮件.但是发送邮件的过程比较耗时,用户必须要等到我们将邮件发送成功之后才会得到响应.那么有没有一种办法,当用户点击发送邮件的 ...

  10. web开发文档整理

    django 1.11版中文文档 django 1.11版英文文档 Redis命令参考文档 Axios中文文档 Axios英文官方文档 Django REST Framework官方文档 Vue.js ...