day04_JDBC_课后练习 - 参考答案(一共11道练习题)

文章目录

  • day04_JDBC_课后练习
    • 第1题
    • 参考答案
      • 第1题-第3题的sql
      • 第4题
      • 第5题
      • 第6题
      • 第7题
      • 第8题
      • 第9题
      • 第10题
      • 第11题

day04_JDBC_课后练习

第1题

案例:

1、创建数据库day04_test01_bookstore

2、创建如下表格

(1)图书表books

在这里插入图片描述

(2)用户表users

在这里插入图片描述

(3)订单表orders

在这里插入图片描述

(4)订单明细表order_items

在这里插入图片描述

3、使用sql语句在命令行或SQLyog中添加一些模拟数据

表books:

在这里插入图片描述

表users:

在这里插入图片描述

表orders:

在这里插入图片描述

表order_items:

在这里插入图片描述

4、使用JDBC实现往用户表中添加1个用户,注意密码存储使用mysql的password()函数进行加密

在这里插入图片描述

在这里插入图片描述

5、使用JDBC实现往图书表中添加1本图书

6、从键盘输入用户名和密码,模拟登录,使用JDBC实现验证用户名和密码是否正确,如果正确,显示登录成功,否则显示用户名或密码错误

在这里插入图片描述

在这里插入图片描述

7、使用JDBC实现查询所有图书信息

8、使用JDBC实现查询销量最大的图书信息

9、使用JDBC实现修改库存量小于10本的图书的库存量为100

10、从键盘输入用户名,实现查询该用户的订单和订单明细

11、使用JDBC实现删除订单“15275760194821”的相关信息,注意涉及到两张表

参考答案

第1题-第3题的sql

#创建数据库
CREATE DATABASE `day04_test01_bookstore` CHARACTER SET utf8;

USE `day04_test01_bookstore`;

#创建表
CREATE TABLE `books` (
  `id` INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(100) NOT NULL,
  `author` VARCHAR(100) NOT NULL,
  `price` DOUBLE(11,2) NOT NULL,
  `sales` INT(11) NOT NULL,
  `stock` INT(11) NOT NULL,
  `img_path` VARCHAR(100) NOT NULL
) ENGINE=INNODB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

/*Data for the table `books` */
INSERT  INTO `books`(`id`,`title`,`author`,`price`,`sales`,`stock`,`img_path`) VALUES 
(1,'解忧杂货店','东野圭吾',27.20,102,98,'upload/books/解忧杂货店.jpg'),
(2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg'),
(3,'中国哲学史','冯友兰',44.50,101,99,'upload/books/中国哲学史.jpg'),
(4,'忽然七日',' 劳伦',19.33,101,99,'upload/books/忽然七日.jpg'),
(5,'苏东坡传','林语堂',19.30,100,100,'upload/books/苏东坡传.jpg'),
(6,'百年孤独','马尔克斯',29.50,100,100,'upload/books/百年孤独.jpg'),
(7,'扶桑','严歌苓',19.80,100,100,'upload/books/扶桑.jpg'),
(8,'给孩子的诗','北岛',22.20,100,100,'upload/books/给孩子的诗.jpg'),
(9,'为奴十二年','所罗门',16.50,100,100,'upload/books/为奴十二年.jpg'),
(10,'平凡的世界','路遥',55.00,100,100,'upload/books/平凡的世界.jpg'),
(11,'悟空传','今何在',14.00,100,100,'upload/books/悟空传.jpg'),
(12,'硬派健身','斌卡',31.20,100,100,'upload/books/硬派健身.jpg'),
(13,'从晚清到民国','唐德刚',39.90,100,100,'upload/books/从晚清到民国.jpg'),
(14,'三体','刘慈欣',56.50,100,100,'upload/books/三体.jpg'),
(15,'看见','柴静',19.50,100,100,'upload/books/看见.jpg'),
(16,'活着','余华',11.00,100,100,'upload/books/活着.jpg'),
(17,'小王子','安托万',19.20,100,100,'upload/books/小王子.jpg'),
(18,'我们仨','杨绛',11.30,100,100,'upload/books/我们仨.jpg'),
(19,'生命不息,折腾不止','罗永浩',25.20,100,100,'upload/books/生命不息.jpg'),
(20,'皮囊','蔡崇达',23.90,100,100,'upload/books/皮囊.jpg'),
(21,'恰到好处的幸福','毕淑敏',16.40,100,100,'upload/books/恰到好处的幸福.jpg'),
(22,'大数据预测','埃里克',37.20,100,100,'upload/books/大数据预测.jpg'),
(23,'人月神话','布鲁克斯',55.90,100,100,'upload/books/人月神话.jpg'),
(24,'C语言入门经典','霍尔顿',45.00,100,100,'upload/books/C语言入门经典.jpg'),
(25,'数学之美','吴军',29.90,100,100,'upload/books/数学之美.jpg'),
(26,'Java编程思想','埃史尔',70.50,100,100,'upload/books/Java编程思想.jpg'),
(27,'设计模式之禅','秦小波',20.20,100,100,'upload/books/设计模式之禅.jpg'),
(28,'图解机器学习','杉山将',33.80,100,100,'upload/books/图解机器学习.jpg'),
(29,'艾伦图灵传','安德鲁',47.20,100,100,'upload/books/艾伦图灵传.jpg'),
(30,'教父','马里奥普佐',29.00,100,100,'upload/books/教父.jpg');

CREATE TABLE `users` (
  `id` INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(100) UNIQUE KEY NOT NULL,
  `password` VARCHAR(100) NOT NULL,
  `email` VARCHAR(100) DEFAULT NULL
) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

/*Data for the table `users` */
INSERT  INTO `users`(`id`,`username`,`password`,`email`) VALUES
 (1,'admin',PASSWORD('123456'),'admin@atguigu.com'),
 (2,'admin2',PASSWORD('123456'),'admin2@atguigu.com'),
 (3,'admin3',PASSWORD('123456'),'admin3@atguigu.com'),
 (4,'chai',PASSWORD('123'),'chai@atguigu.com');

CREATE TABLE `orders` (
  `id` VARCHAR(100) PRIMARY KEY NOT NULL,
  `order_time` DATETIME NOT NULL,
  `total_count` INT(11) NOT NULL,
  `total_amount` DOUBLE(11,2) NOT NULL,
  `state` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  CONSTRAINT `orders_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

/*Data for the table `orders` */
INSERT  INTO `orders`(`id`,`order_time`,`total_count`,`total_amount`,`state`,`user_id`) VALUES 
('15275760194821','2018-05-29 14:40:19',4,114.03,2,1),
('15294258455691','2018-06-20 00:30:45',2,50.20,0,1);


CREATE TABLE `order_items` (
  `id` INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
  `count` INT(11) NOT NULL,
  `amount` DOUBLE(11,2) NOT NULL,
  `title` VARCHAR(100) NOT NULL,
  `author` VARCHAR(100) NOT NULL,
  `price` DOUBLE(11,2) NOT NULL,
  `img_path` VARCHAR(100) NOT NULL,
  `order_id` VARCHAR(100) NOT NULL,
  CONSTRAINT `order_items_orders_id_fk` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE
) ENGINE=INNODB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

/*Data for the table `order_items` */
INSERT  INTO `order_items`
(`id`,`count`,`amount`,`title`,`author`,`price`,`img_path`,`order_id`) VALUES 
(1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15275760194821'),
(2,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg','15275760194821'),
(3,1,44.50,'中国哲学史','冯友兰',44.50,'static/img/default.jpg','15275760194821'),
(4,1,19.33,'忽然七日',' 劳伦',19.33,'static/img/default.jpg','15275760194821'),
(5,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15294258455691'),
(6,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg','15294258455691');

第4题

package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;

import org.junit.Test;

public class Test04 {
	@Test
	public void test()throws Exception{
		//从键盘输入用户信息,添加到day04_test01_bookstore库的users表中
		Scanner input = new Scanner(System.in);
		
		System.out.print("请输入用户名:");
		String username = input.next();
		
		System.out.print("请输入密码:");
		String password = input.next();
		
		System.out.print("请输入邮箱:");
		String email = input.next();
		
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "insert into users values(null,?,password(?),?)";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//加入一步,设置?的值
		pst.setString(1, username);//1表示第1个?
		pst.setString(2, password);//2表示第2个?
		pst.setString(3, email);//3表示第3个?
		
		//5、执行sql
		int len = pst.executeUpdate();
		System.out.println(len>0?"添加成功":"添加失败");
		
		//6、关闭
		pst.close();
		conn.close();
		input.close();
	}
}

第5题

package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import org.junit.Test;

public class Test05 {
	@Test
	public void test()throws Exception{
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "insert into books(`id`,`title`,`author`,`price`,`sales`,`stock`,`img_path`) values(null,?,?,?,?,?,?)";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//加入一步,设置?的值
		pst.setString(1, "《从入门到放弃》");//1表示第1个?
		pst.setString(2, "柴林燕");//2表示第2个?
		pst.setDouble(3, 88.8);//3表示第3个?
		pst.setInt(4, 0);
		pst.setInt(5, 100);
		pst.setString(6, "upload/books/从入门到放弃.jpg");
		
		//5、执行sql
		int len = pst.executeUpdate();
		System.out.println(len>0?"添加成功":"添加失败");
		
		//6、关闭
		pst.close();
		conn.close();
	}
}

第6题

package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;

public class Test06 {
	public static void main(String[] args)throws Exception {
		//从键盘输入用户名和密码,模拟登录
		Scanner input = new Scanner(System.in);
		
		System.out.println("请登录");
		System.out.print("请输入用户名:");
		String username = input.next();
		
		System.out.print("请输入密码:");
		String password = input.next();
		
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "select * from users where username = ? and password = password(?)";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//加入一步,设置?的值
		pst.setString(1, username);//1表示第1个?
		pst.setString(2, password);//2表示第2个?
		
		//5、执行sql
		ResultSet rs = pst.executeQuery();
		if(rs.next()){
			System.out.println("登录成功");
		}else{
			System.out.println("登录失败,用户名或密码错误");
		}
		
		//6、关闭
		rs.close();
		pst.close();
		conn.close();
		input.close();		
	}
}

第7题

package com.atguigu.jdbc;

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

public class Test07 {
	public static void main(String[] args)throws Exception {
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "select `id`,`title`,`author`,`price`,`sales`,`stock`,`img_path` from books";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//5、执行sql
		ResultSet rs = pst.executeQuery();
		while(rs.next()){
			for (int i = 1; i <= 7; i++) {
				System.out.print(rs.getObject(i)+"\t");
			}
			System.out.println();
		}
		
		//6、关闭
		rs.close();
		pst.close();
		conn.close();
	}
}

第8题

package com.atguigu.jdbc;

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

public class Test08 {
	public static void main(String[] args)throws Exception {
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "select `id`,`title`,`author`,`price`,`sales`,`stock`,`img_path` from books where sales = (select max(sales) from books)";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//5、执行sql
		ResultSet rs = pst.executeQuery();
		while(rs.next()){
			for (int i = 1; i <= 7; i++) {
				System.out.print(rs.getObject(i)+"\t");
			}
			System.out.println();
		}
		
		//6、关闭
		rs.close();
		pst.close();
		conn.close();
	}
}

第9题

package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Test09 {
	public static void main(String[] args)throws Exception {
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "update books set `stock` = 100 where stock < 10";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//5、执行sql
		int len = pst.executeUpdate();
		System.out.println(len>=0 ? "修改成功" : "修改失败");
		//6、关闭
		pst.close();
		conn.close();
	}
}

第10题

package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;

public class Test10 {
	public static void main(String[] args)throws Exception {
		Scanner input = new Scanner(System.in);
		
		System.out.print("请输入用户名:");
		String username = input.next();
		
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "SELECT * FROM order_items INNER JOIN orders ON order_items.order_id = orders.id WHERE user_id = (SELECT id FROM users WHERE username = ?)";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		pst.setString(1, username);
		
		//5、执行sql
		ResultSet rs = pst.executeQuery();
		while(rs.next()){
			for (int i = 1; i <= 14; i++) {
				System.out.print(rs.getObject(i)+"\t");
			}
			System.out.println();
		}
		
		//6、关闭
		rs.close();
		pst.close();
		conn.close();		
		input.close();
	}
}

第11题

因为定义表结构时,设置了级联删除,因此删除主表,从表对应记录会自动删除
package com.atguigu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Test11 {
	public static void main(String[] args)throws Exception {
		//1、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day04_test01_bookstore", "root", "1234");
		
		//3、编写sql
		String sql = "DELETE FROM orders WHERE id = '15275760194821'";
		
		//4、创建PreparedStatement
		PreparedStatement pst = conn.prepareStatement(sql);//此时的sql带?的
		
		//5、执行sql
		int len = pst.executeUpdate();
		System.out.println(len>=0 ? "删除成功" : "删除失败");
		//6、关闭
		pst.close();
		conn.close();
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/488455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+MyBatis校园周边美食探索及分享平台

采用技术 基于SpringBootMyBatis校园周边美食探索及分享平台的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 前台首页 登录页面 美食鉴赏界面…

【牛客】SQL142 对试卷得分做min-max归一化

描述 现有试卷信息表examination_info&#xff08;exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间&#xff09;&#xff1a; idexam_idtagdifficultydurationrelease_time19001SQLhard602020-01-01 10:00:0029002Chard802020-01-0…

等保测评密评对照:一文看懂两者差异

最近&#xff0c;在去几个客户的办公室交流的方案的时候&#xff0c;都会被重点问到网络安全问题,在方案中“等保”是如何体现和落实的。而且有些客户的领导也会提到“密评”与“等保”如何衔接&#xff0c;是否有先后顺序&#xff0c;可否同时进行测评等问题。 关于“等保”与…

后端常问面经之Java集合

HashMap底层原理 HashMap的数据结构&#xff1a; 底层使用hash表数据结构&#xff0c;即数组和链表或红黑树 当我们往HashMap中put元素时&#xff0c;利用key的hashCode重新hash计算出当前对象的元素在数组中的下标 存储时&#xff0c;如果出现hash值相同的key&#xff0c;此…

《自动机理论、语言和计算导论》阅读笔记:p28-p48

《自动机理论、语言和计算导论》学习第3天&#xff0c;p28-p48总结&#xff0c;总计21页。 一、技术总结 1.希腊字母(Greek Alphabet包含大小写)。 24个&#xff0c;掌握其读写有助于阅读及数学推导时使用。 2.自动机理论的核心概念 (1)alphabet (2)string (3)language …

【CXL协议-事务层之CXL.mem(3)】

3.3 CXL.mem 3.3.1 Introduction &#xff08;介绍&#xff09; CXL 内存协议称为 CXL.mem&#xff0c;它是 CPU 和内存之间的事务接口。 跨芯片通信时&#xff0c;它使用 Compute Express Link (CXL) 的物理层和链路层。 该协议可用于多种不同的内存连接选项&#xff0c;包括…

Pandas操作MultiIndex合并行列的Excel,写入读取以及写入多余行及Index列处理,插入行,修改某个单元格的值

Pandas操作MultiIndex合并行列的excel&#xff0c;写入读取以及写入多余行及Index列处理 1. 效果图及问题2. 源码参考 今天是谁写Pandas的 复合索引MultiIndex&#xff0c;写的糊糊涂涂&#xff0c;晕晕乎乎。 是我呀… 记录下&#xff0c;现在终于灵台清明了。 明天在记录下直…

Vue3进阶(叁):关于 Vue2 项目迁移至 Vue3 的几点注意事项

文章目录 一、前言二、Vue3 新特性三、Vue2 安全保障四、迁移方案4.1 迁移辅助工具 vue/compat 库 五、迁移注意事项5.1 升级和兼容性5.2 组件的改变5.3 Composition API5.4 Vue Router5.5 Vuex5.6 其他库和插件5.7 差异示例5.7.1 创建vue5.7.2 定义时间格式全局过滤器5.7.3 vu…

PTAxt的考研路

xt是我院19级专业第一&#xff0c;但他认为保研并不能展示他全部的实力&#xff0c;所以他在22年初试一结束就加入了23考研的队伍中&#xff0c;并且他为了填补我院近些年来无北大研究生的空白&#xff0c;毅然决然决定扛起19级的大旗&#xff0c;在学校百年华诞之际献上他最诚…

平台介绍-搭建赛事运营平台(3)

上文介绍了品牌隔离的基本原理&#xff0c;就是通过不同的前端和微服务来实现。但是确实很多功能是类似的&#xff0c;所以从编程角度还是有些管理手段的。 前端部分&#xff1a;前端部分没有什么特别手段&#xff0c;就是两个独立的项目工程&#xff0c;分别维护。相同的部分复…

maven的依赖继承

先说一下创建子maven工程的步骤 继承 继承的作用&#xff1a;在父工程中&#xff0c;统一管理项目中的依赖信息&#xff0c;进行统一的版本控制 继承的背景是&#xff1a;对一个大型的项目进行了模块拆分&#xff0c;一个project下&#xff0c;创建了很多的module&#xff0c…

绝地求生:PUBG七周年在线人数70万,比六周年增加24万

大家好&#xff0c;我是闲游盒 自从3月PUBG7周年活动开启&#xff0c;PUBG在线人数再次突破70万&#xff0c;黑盒数据显示最高在线人数达704344人,PUBG迎来又一春。 对比6周年的数据而言&#xff0c;7周年的玩家在线人数增长了24万&#xff01; 而根据数据显示&#xff0c;PUBG…

centos7 装 docker-ce

安装必要的系统工具&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 命令会以超级用户的身份安装三个软件包&#xff1a;yum-utils&#xff0c;device-mapper-persistent-…

『笔记』可扩展架构设计之消息队列

前言 众所周知&#xff0c;开发低耦合系统是软件开发的终极目标之一。低耦合的系统更加容易扩展&#xff0c;低耦合的模块更加容易复用&#xff0c;更易于维护和管理。我们知道&#xff0c;消息队列的主要功能就是收发消息&#xff0c;但是它的作用不仅仅只是解决应用之间的通…

数据库高级查询【mysql】

数据库高级查询【数据库】 前言版权推荐数据库高级查询行转列统计数据 CASE WHEN 条件 THEN 结果1 ELSE 结果2 END数据库查询带排名建表查询带排名&#xff0c;排名连续查询带排名&#xff0c;排名不连续查询带排名&#xff0c;按行号 Mysql数据库函数常用函数最后 前言 2024-…

(四)图像的%2线性拉伸

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 OpenCV-460.jar 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存储格式的相互转换算法 &#xff08;三…

SQLite中的原子提交(四)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite数据库成为内存中数据库&#xff08;三&#xff09; 下一篇&#xff1a;SQLite使用的临时文件&#xff08;二&#xff09; 1. 引言 SQLite等事务数据库的一个重要特性 是“原子提交”。 原子提交意味着所有数据库都在…

【文献分享】WimPyDD 程序:用于计算 WIMP 直接检测信号的面向对象的 Python 代码

题目&#xff1a;WimPyDD: An object–oriented Python code for the calculation of WIMP direct detection signals 链接&#xff1a;DOI: 10.1016/j.cpc.2022.108342 Program Title: WimPyDD (first release: v1.6.1) CPC Library link to program files: https://doi.…

【哈希专题】【蓝桥杯备考训练】:星空之夜、模拟散列表、字符串哈希、四平方和、扫雷【已更新完成】

目录 1、星空之夜&#xff08;usaco training 5.1&#xff09; 2、模拟散列表&#xff08;模板&#xff09; 3、字符串哈希&#xff08;模板&#xff09; 4、四平方和&#xff08;第七届蓝桥杯省赛C A组/B组 & JAVA B组/C组&#xff09; 5、扫雷&#xff08;Google Ki…

AOI检测是如何逐步渗透进半导体领域

欢迎关注GZH《光场视觉》 一直以来AOI检测都是制造业视觉检测系统产业的核心要素。 AOI检测技术应运而生的背景是&#xff1a;电子元件集成度与精细化程度高&#xff0c;检测速度与效率更高、检测零缺陷的发展需求。 在制造业视觉检测系统中下游应用领域中&#xff0c;AOI检测…