侧边栏壁纸
  • 累计撰写 46 篇文章
  • 累计创建 38 个标签
  • 累计收到 2 条评论
隐藏侧边栏

Sqllite

哒卟刘先生
2022-01-08 / 0 评论 / 0 点赞 / 115 阅读 / 3,113 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-08,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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

0

评论区