想显示数据库,用列表实现或用折线图,自己已经实现了列表,但是有些小问题,能帮忙修改吗
public class UserDB {
SQLiteDatabase writableDatabase; //声明操作数据库对象
private static String DB_NAME = "user.db"; //表名
private static int DB_VERSION = 1; //版本号
private static String SQL = "create table userinfo("//创建数据库语句
+ "id integer primary key autoincrement," //主键
+ "account text," //字符串型
+ "nickname text," //数据库字段
+ "sex text,"
+ "age integer," //整型
+ "password text)";
public static class UserDBOpenHelper extends SQLiteOpenHelper {
private Context context;
public UserDBOpenHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION); //数据库传入数据库名及版本号
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) { //创建数据库
db.execSQL(SQL); //执行SQL语句
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //当数据库版本发生变化执行
db.execSQL("drop table if exists userinfo"); //有这个数据库则删除重新创建
db.execSQL(SQL);
}
}
public void OpenUserDb(Context context) { //打开数据库
UserDBOpenHelper userDBOpenHelper = new UserDBOpenHelper(context);
writableDatabase = userDBOpenHelper.getWritableDatabase(); //对数据库增删查改方法
}
public long insertUserData(User user) { //增加数据
String account = user.getAccount(); //获取控件输入的值
String nickname = user.getNickname();
String sex = user.getSex();
String password = user.getPassword();
int age = user.getAge();
ContentValues contentValues = new ContentValues(); //存储信息
contentValues.put("account", account); //调用contentValues.put()方法通过键值存入键值
contentValues.put("nickname", nickname);
contentValues.put("sex", sex);
contentValues.put("password", password);
contentValues.put("age", age);
//调用增加数据writableDatabase.insert方法,第一个参数表名
return writableDatabase.insert("userinfo", null, contentValues); /
}
public List<User> FindAllUser() { //查询数据库所有数据
//封装了一个数据库字段的类,创建列表对象,存储查到找的所有用户信息
List<User> users = new ArrayList<>();
//查询条件
Cursor userinfo = writableDatabase.query("userinfo", null, null, null, null, null, null, null);
while (userinfo.moveToNext()) {
//获取查找到的信息并保存临时变量
String account = userinfo.getString(userinfo.getColumnIndex("account"));
String nickname = userinfo.getString(userinfo.getColumnIndex("nickname"));
String sex = userinfo.getString(userinfo.getColumnIndex("sex"));
String password = userinfo.getString(userinfo.getColumnIndex("password"));
int age = Integer.parseInt(userinfo.getString(userinfo.getColumnIndex("age")));
User user = new User(account, nickname, sex, password, age);//封住成对象
users.add(user); //增加到列表
}
return users; //返回数据保存
}
public boolean delete(String account) { //删除
//调用writableDatabase.delete()删除方法,会返回受影响行数,第一个参数表名,第二个是删除条件,
return writableDatabase.delete("userinfo", "account = ?", new String[]{account}) > 0;
}
你列表出现了什么问题?