日期:2014-05-16  浏览次数:20607 次

Java中使用Sqlite数据库
Sqlite数据库第三方java扩展包下载地址:http://www.zentus.com/sqlitejdbc/
Java中使用Sqlite数据库有两种方式:
1.nested(嵌入式的)
2.native(本地的)

区别在于:
nested 不需要额外的dll文件,但是速度慢。
native需要一个额外的dll文件,速度很快。

1.nested(嵌入式的),sqlitejdbc-v056.jar需要加到classpath里
package com.esri;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestSqlite {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// System.setProperty("java.library.path", ".");

		try {
			Class.forName("org.sqlite.JDBC");
			Connection conn = DriverManager
					.getConnection("jdbc:sqlite:c:/test3.db");
			// 建立事务机制,禁止自动提交,设置回滚点
			conn.setAutoCommit(false);

			Statement stat = conn.createStatement();
			stat.executeUpdate("create table people (name, occupation);");
			stat.executeUpdate("insert into people values ('Gandhi', 'politics');");
			stat.executeUpdate("insert into people values ('Turing', 'computers');");
			stat.executeUpdate("insert into people values ('Wittgenstein', 'smartypants');");
			conn.commit();

			ResultSet rs = stat.executeQuery("select * from people;");
			while (rs.next()) {
				System.out.println("name = " + rs.getString("name"));
				System.out
						.println("occupation = " + rs.getString("occupation"));
			}

			rs.close();
			conn.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}



Sqlite中如何查询数据库中存在的所有表?
SELECT name FROM sqlite_master
WHERE type='table'
ORDER BY name;