(一)
知识点:
SQLite3支持的数据类型:NULL,INTEGER,REAL(浮点数字),TEXT(字符串文本),BLOB(二进制对象),虽然他支持的类型只有五种,但实际上sqlite3也接受varchar(n),char(n)等数据类型
1.效果图:点击增加数据,显示增加完毕,点击查询数据,可以查看加进去的数据
2.布局
(1)activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.example.app5.MainActivity" 11 android:orientation="vertical"> 12 13 <TextView 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:text="数据库使用" /> 17 <Button 18 android:id="@+id/btn_add" 19 android:onClick="doClick" 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:text="增加数据"/> 23 <Button 24 android:id="@+id/btn_query" 25 android:onClick="doClick" 26 android:layout_width="match_parent" 27 android:layout_height="wrap_content" 28 android:text="查询数据"/> 29 <ListView 30 android:id="@+id/lv" 31 android:layout_width="match_parent" 32 android:layout_height="wrap_content"></ListView> 33 </LinearLayout>
(2)item.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 > 6 7 <TextView 8 android:id="@+id/user_Id" 9 android:layout_width="50dp" 10 android:layout_height="wrap_content" /> 11 <TextView 12 android:id="@+id/user_Name" 13 android:layout_width="100dp" 14 android:layout_height="wrap_content" /> 15 <TextView 16 android:id="@+id/user_Age" 17 android:layout_width="50dp" 18 android:layout_height="wrap_content" /> 19 20 </LinearLayout>
3.UserDao.java
1 package com.example.app5.Dao; 2 3 import android.content.ContentValues; 4 import android.content.Context; 5 import android.database.Cursor; 6 import android.database.sqlite.SQLiteDatabase; 7 8 import com.example.app5.DBUtil.MySQLiteHelper; 9 import com.example.app5.entity.User; 10 11 import java.util.ArrayList; 12 import java.util.List; 13 14 15 /** 16 * Created by Administrator on 2018/5/24. 17 */ 18 public class UserDao { 19 private MySQLiteHelper mySQLiteHelper; 20 private SQLiteDatabase db; 21 22 23 public UserDao(Context context){ 24 mySQLiteHelper = new MySQLiteHelper(context); 25 db=mySQLiteHelper.getReadableDatabase(); //获取数据库对象 26 } 27 public void insertUser(){ 28 //使用字符串拼接方式操作数据 29 String sql = "insert into t_user(userName,userAge) values ('zhangsan',20)"; 30 db.execSQL(sql); 31 //通过占位符的形式进行数据操作 32 db.execSQL("insert into t_user(userName,userAge) values(?,?)",new Object[]{"lisi",21}); 33 //使用系统自带的方法实现数据操作 34 ContentValues values = new ContentValues(); 35 values.put("userName","wangwu"); 36 values.put("userAge",22); 37 db.insert("t_user",null,values); 38 39 40 } 41 42 public List<User>query(){ 43 List<User> list= new ArrayList<>(); 44 Cursor cursor = db.rawQuery("select * from t_user",null); 45 if(cursor!=null){ 46 while (cursor.moveToNext()){ 47 int userId = cursor.getInt(cursor.getColumnIndex("userId")); 48 String userName = cursor.getString(1); 49 int userAge = cursor.getInt(2); 50 User user = new User(userId,userName,userAge); 51 list.add(user); 52 53 } 54 } 55 cursor.close(); 56 return list; 57 58 } 59 }
4.MySQLiteHelper
1 package com.example.app5.DBUtil; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 7 /** 8 * Created by Administrator on 2018/5/24. 9 */ 10 public class MySQLiteHelper extends SQLiteOpenHelper { 11 private static final String NAME="mydata.db"; 12 private static final int version=1; 13 14 public MySQLiteHelper(Context context) { 15 16 super(context, NAME, null, version); 17 } 18 19 @Override 20 public void onCreate(SQLiteDatabase db) { 21 db.execSQL("create table t_user(userId integer primary key autoincrement,userName text not null,userAge integer not null)"); 22 23 } 24 25 26 27 @Override 28 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 29 30 } 31 }
5.User.java
1 package com.example.app5.entity; 2 3 /** 4 * Created by Administrator on 2018/5/24. 5 */ 6 public class User { 7 private int userId; 8 private String userName; 9 private int useAge; 10 11 public User(int userId, String userName, int useAge) { 12 this.userId = userId; 13 this.userName = userName; 14 this.useAge = useAge; 15 } 16 17 public int getUserId() { 18 return userId; 19 } 20 21 public void setUserId(int userId) { 22 this.userId = userId; 23 } 24 25 public String getUserName() { 26 return userName; 27 } 28 29 public void setUserName(String userName) { 30 this.userName = userName; 31 } 32 33 public int getUseAge() { 34 return useAge; 35 } 36 37 public void setUseAge(int useAge) { 38 this.useAge = useAge; 39 } 40 }
6.MainActivity.java
1 package com.example.app5; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.support.v7.widget.ListViewCompat; 6 import android.view.View; 7 import android.widget.ListView; 8 import android.widget.Toast; 9 10 import com.example.app5.Dao.UserDao; 11 import com.example.app5.entity.User; 12 13 import java.util.List; 14 15 public class MainActivity extends AppCompatActivity { 16 private UserDao userDao; 17 private List<User> list; 18 private MyAapter myAapter; 19 private ListView listView; 20 21 @Override 22 protected void onCreate(Bundle savedInstanceState) { 23 super.onCreate(savedInstanceState); 24 setContentView(R.layout.activity_main); 25 userDao = new UserDao(MainActivity.this); 26 listView=(ListView)findViewById(R.id.lv); 27 } 28 29 public void doClick(View view){ 30 switch (view.getId()){ 31 case R.id.btn_add: 32 userDao.insertUser(); 33 Toast.makeText(MainActivity.this, "插入完毕111333333333", Toast.LENGTH_SHORT).show(); 34 break; 35 case R.id.btn_query: 36 list=userDao.query(); 37 myAapter=new MyAapter(list,MainActivity.this); 38 listView.setAdapter(myAapter); 39 break; 40 41 42 43 44 } 45 } 46 }
7.MyAapter
1 package com.example.app5; 2 3 import android.content.Context; 4 import android.view.LayoutInflater; 5 import android.view.View; 6 import android.view.ViewGroup; 7 import android.widget.BaseAdapter; 8 import android.widget.TextView; 9 10 import com.example.app5.entity.User; 11 12 import java.util.List; 13 14 /** 15 * Created by Administrator on 2018/5/24. 16 */ 17 public class MyAapter extends BaseAdapter { 18 private Context context; 19 private List<User> list; 20 21 public MyAapter(List<User> list, Context context) { 22 this.list = list; 23 this.context = context; 24 } 25 @Override 26 public int getCount() { 27 return list.size(); 28 } 29 30 @Override 31 public Object getItem(int position) { 32 return list.get(position); 33 } 34 35 @Override 36 public long getItemId(int position) { 37 return position; 38 } 39 40 @Override 41 public View getView(int position, View convertView, ViewGroup parent) { 42 ViewH viewH; 43 if (convertView==null){ 44 convertView= LayoutInflater.from(context).inflate(R.layout.item,null); 45 viewH = new ViewH(); 46 viewH.tv_id=(TextView)convertView.findViewById(R.id.user_Id); 47 viewH.tv_age=(TextView)convertView.findViewById(R.id.user_Age); 48 viewH.tv_name=(TextView)convertView.findViewById(R.id.user_Name); 49 convertView.setTag(viewH); 50 }else { 51 viewH=(ViewH)convertView.getTag(); 52 } 53 viewH.tv_id.setText(list.get(position).getUserId()+""); 54 viewH.tv_name.setText(list.get(position).getUserName()+""); 55 viewH.tv_age.setText(list.get(position).getUseAge()+""); 56 return convertView; 57 } 58 59 class ViewH{ 60 private TextView tv_id; 61 private TextView tv_age; 62 private TextView tv_name; 63 } 64 }