Sqllite

Sqllite是什么?

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

为什么用Sqllite?

  1. 不需要一个单独的服务器进程或操作的系统(无服务器的)。

  2. SQLite 不需要配置,这意味着不需要安装或管理。

  3. 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

  4. SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

  5. SQLite 是自给自足的,这意味着不需要任何外部的依赖。

  6. SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。

  7. SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。

  8. SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。

  9. SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

Sqllite怎么用?

我这里是SpringBoot与Sqllite的整合

1,添加依赖
		<!--sqllite-->
		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.23.1</version>
		</dependency>
2,连接数据库

它连接到一个现有的数据库。如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

import java.sql.*;

public class SQLiteJDBC{
  public static void main( String args[] ) {
    Connection c = null;
    try {
    	//加载驱动
      Class.forName("org.sqlite.JDBC");
      // 创建连接对象
      c = DriverManager.getConnection("jdbc:sqlite:test.db");
    } catch ( Exception e ) {
      System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      System.exit(0);
    }
    System.out.println("Opened database successfully");
  }
}
2,增删改查

try {
//创建会话
 stmt = c.createStatement();
 		//建表
      String sql = "CREATE TABLE COMPANY " +
                   "(ID INT PRIMARY KEY     NOT NULL," +
                   " NAME           TEXT    NOT NULL, " + 
                   " AGE            INT     NOT NULL, " + 
                   " ADDRESS        CHAR(50), " + 
                   " SALARY         REAL)"; 
      stmt.executeUpdate(sql);

     	 //增
   	  String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                   "VALUES (1, 'Paul', 32, 'California', 20000.00 );"; 
      stmt.executeUpdate(sql);
      
      //查
	  ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
      while ( rs.next() ) {
         int id = rs.getInt("id");
         String  name = rs.getString("name");
         int age  = rs.getInt("age");
         String  address = rs.getString("address");
         float salary = rs.getFloat("salary");
         System.out.println( "ID = " + id );
         System.out.println( "NAME = " + name );
         System.out.println( "AGE = " + age );
         System.out.println( "ADDRESS = " + address );
         System.out.println( "SALARY = " + salary );
         System.out.println();
      }
      rs.close();

		//改
 	  String sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";
      stmt.executeUpdate(sql);
      c.commit();

		//删
 	  String sql = "DELETE from COMPANY where ID=2;";
      stmt.executeUpdate(sql);
      c.commit();
 } catch (SQLException e) {
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            System.exit(0);
        }
3,关闭连接
 	try {
            stmt.close();
            c.close();
        } catch (SQLException e) {
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            System.exit(0);
        }

Sqllite遇到的问题?

1,提供一个SqlLite可视化工具:

链接:https://pan.baidu.com/s/14KiFvoQmTKZVlVydEDeLkg
提取码:yci2

1,关于插入value是不是int及特殊字符的问题:

1,插入非int如果出现问题,打印你插入的sql看是否value有引号,如果没有
在插入时value外面再加引号,报错加转义字符 示例:

String insertsql = "INSERT INTO aaa VALUES (" + sbrj.getId() + ",\"" + sbrj.getZcbi() + "\",\"" + sbrj.getRjlxcn() +
                    "\",\"" + sbrj.getRjmc() + "\",\"" + sbrj.getCskfscn() + "\"," + 0 + "," + 0 + "," + 0 + "," + null + ");"

2,如果有特殊字符:
https://blog.csdn.net/forlong401/article/details/11749829

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值