创建数据库与查询数据

来源:互联网 发布:ubuntu安装深度商店 编辑:程序博客网 时间:2024/06/04 23:29

1、第一:需要一个OpenHelper


public class MyDbOpenHelper extends SQLiteOpenHelper {


public MyDbOpenHelper(Context context) {
super(context, "demo.db", null, 1);
}


@Override
public void onCreate(SQLiteDatabase db) {
int[] images = { R.drawable.pic1, R.drawable.pic2, R.drawable.pic3,
R.drawable.pic4, R.drawable.pic5, R.drawable.pic6,
R.drawable.pic7, R.drawable.pic8, R.drawable.pic9,
R.drawable.pic10, R.drawable.pic11, R.drawable.pic12,
R.drawable.pic13, R.drawable.pic14, R.drawable.pic15,
R.drawable.pic16, R.drawable.pic17, R.drawable.pic18,
R.drawable.pic19, R.drawable.pic20, R.drawable.pic21,
R.drawable.pic22, R.drawable.pic23, R.drawable.pic24,
R.drawable.pic25, R.drawable.pic26, R.drawable.pic27,
R.drawable.pic28, R.drawable.pic29, R.drawable.pic30,
R.drawable.pic31, R.drawable.pic32, R.drawable.pic33,
R.drawable.pic34, R.drawable.pic35, R.drawable.pic36,
R.drawable.pic37, R.drawable.pic38, R.drawable.pic39,
R.drawable.pic40, R.drawable.pic41, R.drawable.pic42,
R.drawable.pic43, R.drawable.pic44, R.drawable.pic45,
R.drawable.pic46, R.drawable.pic47, R.drawable.pic48,
R.drawable.pic49, R.drawable.pic50, R.drawable.pic51,
R.drawable.pic52, R.drawable.pic53, R.drawable.pic54,
R.drawable.pic55, R.drawable.pic56, R.drawable.pic57,
R.drawable.pic58, R.drawable.pic59, R.drawable.pic60,
R.drawable.pic61, R.drawable.pic62, R.drawable.pic63,
R.drawable.pic64, R.drawable.pic65, R.drawable.pic66,
R.drawable.pic67, R.drawable.pic68, R.drawable.pic69,
R.drawable.pic70, R.drawable.pic71, R.drawable.pic72,
R.drawable.pic73, R.drawable.pic74, R.drawable.pic75,
R.drawable.pic76, R.drawable.pic77, };


String[] names = { "美图1", "美图2", "美图3", "美图4", "美图5", "美图6", "美图7",
"美图8", "美图9", "美图10", "美图11", "美图12", "美图13", "美图14", "美图15",
"美图16", "美图17", "美图18", "美图19", "美图20", "美图21", "美图22", "美图23",
"美图24", "美图25", "美图26", "美图27", "美图28", "美图29", "美图30", "美图31",
"美图32", "美图33", "美图34", "美图35", "美图36", "美图37", "美图38", "美图39",
"美图40", "美图41", "美图42", "美图43", "美图44", "美图45", "美图46", "美图47",
"美图48", "美图49", "美图50", "美图51", "美图52", "美图53", "美图54", "美图55",
"美图56", "美图57", "美图58", "美图59", "美图60", "美图61", "美图62", "美图63",
"美图64", "美图65", "美图66", "美图67", "美图68", "美图69", "美图70", "美图71",
"美图72", "美图73", "美图74", "美图75", "美图76", "美图77"};
String sql = "create table pics(_id integer primary key autoincrement,name text,pic integer)";
db.execSQL(sql);


for (int i = 0; i < names.length; i++) {
String sql2 = "insert into pics (name,pic) values ('" + names[i]
+ "'," + images[i] + ")";

//这个写sql语句的值的时候,是因为这sql2整体是一个字符串所以需要最外面套一个双引号,然后里面的值如果是text也就是String的话,就需要在值的外面套一个单引号来表示这个值是字符串,如果是integer的话就不需要,直接写值。比如:

//  db.execSQL("insert into pics (pic,name) values ("+R.drawable.ic_launcher+",'5"+i+"')");


pic值为整形、name值为字符串

红色的代表是整体是一个字符串;绿色的代表拼接的,并且这个拼接的内容是整数型;蓝色代表这区间里面是一个字符串,只不过是因为在红色双引号里面所以用单引号表示;黄色代表拼接,并且拼接的内容是整形。但i是跟5合起来组成了一个字符串
db.execSQL(sql2);
}
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {


}

}


2、在MainActivity中调用:

public class MainActivity extends Activity {


private ListView listView;
private SQLiteDatabase db;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
initDb();
initData();
}


private void initData() {
Cursor cursor = db.query("pics", new String[] { "pic", "name" }, null,
null, null, null, null);
List<News> list = new ArrayList<News>();
while (cursor.moveToNext()) {
int pic = cursor.getInt(0);
String name = cursor.getString(1);
list.add(new News(pic, name));
}
listView.setAdapter(new MyAdapter(list, this));
}


private void initDb() {
// 建立连接
MyDbOpenHelper openHelper = new MyDbOpenHelper(this);
// 当下面这个语句调用的时候才会创建数据库
db = openHelper.getWritableDatabase();
}
}

0 0
原创粉丝点击