说明: 下面的代码演示了如何对 sqlite 数据库的操作..
注意:
1. 数据库名 pmm_cz 你可以任意修改成你自己的. 无论是否存在都可以. 因为如果存在, 则不会再创建. 如果不存在, 则新创建一个.
2. 表名也可以任意取. 表里的字段名也可以任意取. 我这里只是演示我自己的环境中的. 至于表的创建, 你可以使用 SQLite Expert Personal 这个可视化的编辑器创建.
3. 开发环境 myeclipse 8.5 + jdk 1.6
1) 创建一个 java project 或 web 都可以.
2) 在 http://www.zentus.com/sqlitejdbc/ 中下载 sqlite 驱动 jar 包, 然后添加到 myeclise 的 Builder path 即可.. 我下的是: sqlitejdbc-v056.jar
package blrise.emcs.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
public class SqliteTest {
/**
* 测试获取 Connection
* @throws Exception
*/
@Test
public void testGetConnection() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
System.out.println(conn);
}
/**
* 测试获取结果集
* @throws Exception
*/
@Test
public void getQueryAllData() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
String sql = "select * from WM_EQUI_TYPE";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString("eq_type") + " :: " + rs.getString("eq_type_name"));
}
}
/**
* 测试插入数据
* @throws Exception
*/
@Test
public void testInsert() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
String sql = "insert into WM_EQUI_TYPE (eq_type, eq_type_name) values (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "4");
pstmt.setString(2, "ddd");
pstmt.execute();
System.out.println("Done.");
}
/**
* 测试删除数据
* @throws Exception
*/
@Test
public void testDelete() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
// String sql = "delete from WM_EQUI_TYPE where eq_type = ?";
String sql = "delete from WM_EQUI_TYPE";
PreparedStatement pstmt = conn.prepareStatement(sql);
//pstmt.setString(1, "4");
pstmt.execute();
System.out.println("Done.");
}
/**
* 测试修改数据
* @throws Exception
*/
@Test
public void testUpdate() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
String sql = "update WM_EQUI_TYPE set eq_type_name = ? where eq_type = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "test");
pstmt.setString(2, "3");
pstmt.execute();
System.out.println("Done.");
}
/**
* 测试批处理添加
* @throws Exception
*/
@Test
public void testBatch() throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
String sql = "insert into WM_EQUI_TYPE (eq_type, eq_type_name) values (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
for (int i=1; i<=10; i++) {
pstmt.setString(1, i + "type");
pstmt.setString(2, i + "typeName");
pstmt.addBatch();
}
pstmt.executeBatch();
System.out.println("Done.");
}
/**
* 测试事务
* @throws Exception
*/
@Test
public void testTransaction() throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:d:pmm_cz.db");
conn.setAutoCommit(false);
String sql = "insert into WM_EQUI_TYPE (eq_type, eq_type_name) values (?, ?)";
pstmt = conn.prepareStatement(sql);
for (int i=1; i<=10; i++) {
pstmt.setString(1, i + "type");
pstmt.setString(2, i + "typeName");
pstmt.addBatch();
if (i == 9) {
throw new RuntimeException();
}
}
pstmt.executeBatch();
System.out.println("Done.");
conn.commit();
} catch (Exception e) {
e.printStackTrace();
conn.rollback();
throw e;
} finally {
release(conn, pstmt, rs);
}
}
public void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if (conn != null) {
conn.close();
}
conn = null;
if (pstmt != null) {
pstmt.close();
}
pstmt = null;
if (rs != null) {
rs.close();
}
rs = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
1. 因为是单元测试, 并且声明了抛出异常所以没有对异常进行处理. 其实也不需要进行处理, try...catch 住了直接往外抛即可..
2. 其实没必要每个单元测试类中写获取连接之类的操作. 完全可以写一个工具类来实现.这里为了偷懒了. 全写一块了.
重点只是演示了 sqlite 的使用. 一个文件搞定. 搞多了文件, 也看不清.
应该没有什么问题了吧?
分享到:
相关推荐
本篇将重点介绍如何使用C#语言进行SQLite3的增删改查操作,这对于初学者来说是一次极好的实践机会。 首先,我们要理解C#与SQLite3的集成。C#通过SQLite的.NET数据提供程序(System.Data.SQLite)来与SQLite交互。...
为了实现增删改查的功能,我们需要编写以下关键方法: 1. **添加**:创建一个新的对象,设置其属性,然后调用SQLite管理类的`insertUser:`方法,将对象转换为SQL语句并执行。 2. **修改**:获取选中对象,更新其...
SQLite 是一个轻量级的、开源的嵌入式...以上就是 SQLite 增删改查的基本操作。在实际应用中,你可能还需要学习更多高级特性,如事务处理、索引、视图等。通过实践,你可以更好地理解和掌握 SQLite 数据库的使用。
这篇内容将深入讲解如何在Android中使用SQLite进行数据的增删改查(CRUD)操作以及事务处理。 首先,我们来了解SQLite在Android中的基本使用。每个Android应用都有一个SQLiteOpenHelper的子类,这个类主要用于创建...
SQLite支持SQL标准,包括了增、删、改、查(CRUD)等基本操作。下面我们将详细探讨这四个方面的内容,基于提供的四个示例文件`delete.c`、`query.c`、`insert.c`和`opendbsqlite.c`。 1. **创建数据库和表** 在...
在这个"androidSQLite增删改查及事务处理"的demo中,我们将探讨如何进行基本的数据库操作以及事务处理。 **1. 创建SQLite数据库** 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类帮助我们管理数据库的版本...
本实例将详细讲解如何在Android中进行SQLite数据库的增删改查(CRUD)操作。 **创建SQLite数据库** 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了...
在这个“SQLite增删改查案例”中,我们将深入探讨如何在Android环境下利用SQLite进行数据操作。 1. **SQLite数据库创建**: 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建和管理SQLite数据库。这个类...
本文将深入探讨如何在C#中进行SQLite数据库的增删改查操作。 首先,要使用C#操作SQLite,你需要引入相应的NuGet包,如`System.Data.SQLite`。在Visual Studio中,可以通过右键项目 -> 管理NuGet程序包 -> 搜索...
以上就是创建SQLite增删改查工具类的基本步骤。在实际应用中,你可能需要根据具体需求对这些方法进行扩展,比如添加查询单个记录、按条件查询等。此外,为了保持代码的整洁和可维护性,可以考虑将SQL语句封装到常量...
本教程将深入讲解如何在Android中使用SQLite数据库进行基本的增删改查操作。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过继承`SQLiteOpenHelper`类来完成。`SQLiteOpenHelper`有两个关键的方法...
在Android Studio中,开发者可以利用SQLite进行数据的增删改查操作,以实现本地数据持久化。本教程将深入讲解如何在Android Studio中使用SQLite进行数据库操作。 首先,我们需要创建一个SQLiteOpenHelper的子类,这...
在本文中,我们将深入探讨如何使用C#编程语言在Visual Studio 2022中实现对SQLite数据库的增删改查(CRUD)基础功能。SQLite是一个轻量级的、自包含的、开源的关系型数据库管理系统,适用于各种应用场景,包括移动...
这个"Android操作数据库SQLite增删改查demo"应该包含了创建数据库、定义表、插入数据、查询数据、更新数据和删除数据的基本操作,以及一些最佳实践。对于初学者来说,这是一个很好的起点,有助于理解和掌握Android中...
以下将详细介绍如何在Qt中使用SQLite进行增、删、改、查操作。 ### 增加(Insert) 在Qt中,我们首先需要打开一个SQLite数据库,然后创建一个`QSqlDatabase`对象。接下来,创建`QSqlQuery`对象来执行SQL插入语句。...
在这个“android SQLite 增删改查小例子”中,我们看到一个用于图书管理的应用实例,该应用利用SQLite进行数据操作。下面将详细解释如何在Android中使用SQLite进行基本的增、删、改、查操作。 1. **...
本教程将深入探讨如何使用系统API实现SQLite数据库的增删改查操作,并进行相关的测试。以下是对这个主题的详细讲解: 一、SQLite数据库基础 SQLite是Android系统内置的SQL数据库引擎,无需单独安装。开发者可以创建...
在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的数据库系统,适用于移动...当然,实际应用中可能还需要考虑数据同步、数据加密、事务处理等更高级的特性,但以上内容已经涵盖了基本的增删改查操作。
本教程将深入探讨如何在Android中执行SQLite的增、删、改、查(CRUD)操作。 ### 一、SQLite简介 SQLite是一个自包含、无服务器、零配置、事务型的SQL数据库引擎。它的设计目标是提供一个嵌入式、轻量级的数据存储...
本篇文章将深入探讨如何在Android中使用SQLite进行基本的增删改查操作,以实现高效的数据管理。 SQLite是一个开源的、关系型的数据库,它不需要单独的服务进程,可以直接嵌入到Android应用中,提供了事务处理、索引...