SQLite 是一个轻量级的数据库,非常适合嵌入式系统和移动应用。Java 作为一种广泛使用的编程语言,可以轻松与 SQLite 数据库集成。本文将详细介绍如何在 Java 中使用 SQLite,包括...
SQLite 是一个轻量级的数据库,非常适合嵌入式系统和移动应用。Java 作为一种广泛使用的编程语言,可以轻松与 SQLite 数据库集成。本文将详细介绍如何在 Java 中使用 SQLite,包括环境搭建、基本操作和高级技巧。
在 Java 项目中添加 SQLite JDBC 驱动的依赖。以下是 Maven 依赖示例:
org.xerial sqlite-jdbc 3.36.0.3
使用 Connection 对象连接到 SQLite 数据库。以下是连接示例:
import java.sql.Connection;
import java.sql.DriverManager;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); System.out.println("数据库连接成功!"); } catch (Exception e) { System.out.println("数据库连接失败:" + e.getMessage()); } }
}使用 Statement 对象创建表。以下是创建示例:
import java.sql.Connection;
import java.sql.Statement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); Statement stmt = conn.createStatement(); String sql = "CREATE TABLE IF NOT EXISTS students (" + "id INTEGER PRIMARY KEY," + "name TEXT NOT NULL," + "age INTEGER)"; stmt.execute(sql); System.out.println("表创建成功!"); } catch (Exception e) { System.out.println("创建表失败:" + e.getMessage()); } }
}使用 PreparedStatement 对象插入数据。以下是插入示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "INSERT INTO students(name, age) VALUES(?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "张三"); pstmt.setInt(2, 20); pstmt.executeUpdate(); System.out.println("数据插入成功!"); } catch (Exception e) { System.out.println("插入数据失败:" + e.getMessage()); } }
}使用 PreparedStatement 对象查询数据。以下是查询示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "SELECT * FROM students WHERE age > ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 18); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println("姓名:" + rs.getString("name") + ",年龄:" + rs.getInt("age")); } } catch (Exception e) { System.out.println("查询数据失败:" + e.getMessage()); } }
}使用 PreparedStatement 对象更新数据。以下是更新示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "UPDATE students SET age = ? WHERE name = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 21); pstmt.setString(2, "张三"); pstmt.executeUpdate(); System.out.println("数据更新成功!"); } catch (Exception e) { System.out.println("更新数据失败:" + e.getMessage()); } }
}使用 PreparedStatement 对象删除数据。以下是删除示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "DELETE FROM students WHERE name = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "张三"); pstmt.executeUpdate(); System.out.println("数据删除成功!"); } catch (Exception e) { System.out.println("删除数据失败:" + e.getMessage()); } }
}在 Java 中,可以使用 Connection 对象的事务管理功能来确保数据库操作的原子性。以下是使用事务的示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); conn.setAutoCommit(false); // 关闭自动提交 String sql1 = "INSERT INTO students(name, age) VALUES(?, ?)"; PreparedStatement pstmt1 = conn.prepareStatement(sql1); pstmt1.setString(1, "李四"); pstmt1.setInt(2, 22); pstmt1.executeUpdate(); String sql2 = "UPDATE students SET age = ? WHERE name = ?"; PreparedStatement pstmt2 = conn.prepareStatement(sql2); pstmt2.setInt(1, 23); pstmt2.setString(2, "李四"); pstmt2.executeUpdate(); conn.commit(); // 提交事务 System.out.println("事务成功!"); } catch (Exception e) { try { if (conn != null) { conn.rollback(); // 回滚事务 } } catch (Exception ex) { ex.printStackTrace(); } System.out.println("事务失败:" + e.getMessage()); } }
}在 Java 中,可以使用连接池来提高数据库操作的效率。以下是使用连接池的示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class Main { private static final DataSource dataSource; static { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:sqlite:example.db"); config.setUsername("root"); config.setPassword("root"); dataSource = new HikariDataSource(config); } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } public static void main(String[] args) { try { Connection conn = getConnection(); System.out.println("从连接池获取连接成功!"); } catch (SQLException e) { System.out.println("获取连接失败:" + e.getMessage()); } }
}本文详细介绍了在 Java 中使用 SQLite 数据库的方法,包括环境搭建、基本操作和高级技巧。通过本文的学习,您应该能够轻松地将 SQLite 数据库集成到您的 Java 应用程序中。