android开发中,有时候要用的到是本地化的数据库,也就是说,我们要首先创建好数据库,然后将android应用要用到数据库导入数据,然后将该数据库导入android的应用中,而不是我们创建好了android应用以后,然后由应用再创建数据库的。
比如,我们有一个本地化的联系人的数据200条,我们要先将这200个数据导入数据库中。
一.用到工具
1. sqlite 驱动:http://www.zentus.com/sqlitejdbc/ ,用这个类库的时候,我们并不需要下载sqlite,进行安装!!
- SQLiteJDBC,http://www.zentus.com/sqlitejdbc/,这是一个纯Java的实现,只需把类库导入就可以使用,很方便,缺点嘛,就是慢一些;
- SQLite Java Wrapper,http://www.ch-werner.de/javasqlite/,安装的时候需要本地库,比如windows下的dll文件,和SQLiteJDBC的优缺点相反 。
2.eclipse 3.2 中导入jar包,就是和我们平时导入jar包是一样的
3.可视化sqlite的管理工具 Navicat for SQLite
二. 创建一个数据库
其实就是文件了,姑且就叫test.db,你可以手动,也可以代码。我的例子是用代码上创建的一个数据库。
因为是文件型数据库,所以File file = new File(“test.db”) 就可以了
三 :测试代码
package endual;
import java.io.File;
import java.sql.*;
//import org.sqlite.JDBC;
public class SqliteTest {
public static void main(String[] args) {
System.out.println("This is a SqliteTest program!");
//导入数据库驱动
try {
Class.forName("org.sqlite.JDBC");
System.out.println("Load sqlite Driver sucess!");
}
catch (java.lang.ClassNotFoundException e) {
System.out.println("Fail to Load sqlite Driver!");
System.out.println(e.getMessage());
}
try {
//链接数据库
String connectionString = "jdbc:sqlite:./test.db";
Connection cn = DriverManager.getConnection(connectionString);
System.out.println("Connect sucessfully!");
Statement stmt = cn.createStatement();
// 创建数据库
File testdb = new File("test.db");
if (testdb.exists())
testdb.delete(); // 若有舊的則刪除之
// 创建表
stmt.execute("CREATE TABLE test(id integer primary key, name char(10))");
// 插入数据
stmt.execute("INSERT INTO test(id, name) VALUES(1, '1')");
stmt.execute("INSERT INTO test(id, name) VALUES(2, '2')");
// 查询数据
ResultSet rs = stmt.executeQuery("SELECT * FROM test");
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
System.out.println("id is " + id + " name is " + name);
}
// 关闭数据库资源
stmt.close();
cn.close();
}
catch (SQLException e) {
System.out.println("Fail!");
System.out.println(e.getMessage());
}
}
}
运行完毕以后,刷下工程,那么会发现多了一个文件数据库。
四:查看数据库
将数据库复制到桌面,用数据库可视化管理工具打开这个数据库查看就可以发现里面有数据了的。
----------
这里给两个网址可以看看示意图:
http://marshal.easymorse.com/archives/2399