- 2023-08-22 14:13:52
- 北京
- huá ruǎn chāo tōng
答案仅供参考,博主仅记录发表,没有实际查询,不保证正确性。
A、重写是父类与子类之间多态性的一种表现
B、重写是一个类中多态性的一种表现
C、重载是一个类中多态性的一种表现
D、重载是父类与子类之间多态性的一种表现
A、*.*?(?=W)*
B、*.*?(?=U0)*
c、*.*(?=W0)*
D、*.*(?=V)*
A、CopyOnWriteArrayList 适用于写多读少的并发场景
B、ReadWriteLock 适用于读多写少的并发场景
C、ConcurrentHashMap 的写操作不需要加锁,读操作需要加锁
D、只要在定义 int 类型的成员变量i的时候加上 volatile 关键字,那么多线程并发执行 i++这样的操作的时候就是线程安全的了
A、Hibernate 一级缓存是 Session 的缓存
B、Hibernate 一级缓存是 SessionFactory 的缓存
C、第一级缓存为必需,不允许且事实上也无法被卸除
D、第一级缓存可以设置
1、A、重写是父类与子类之间多态性的一种表现
2、B、.?(?=U0)*
3、B、ReadWriteLock 适用于读多写少的并发场景
4、A、Hibernate 一级缓存是 Session 的缓存
`extern "C"` 是用于在 C++ 代码中指定使用 C 链接约定的关键字。C++ 支持函数重载,即可以有不同参数的同名函数,而函数重载在编译后会产生不同的符号名,这会导致 C++ 代码和其他语言(如 C 语言)在链接时出现问题。通过在 C++ 代码中使用 `extern "C"`,可以使特定的函数按照 C 语言的链接约定进行编译和链接,从而与其他语言的代码能够正确链接。
同步方法和同步块都是用于处理多线程并发访问共享资源时的同步问题,但选择哪个取决于具体的情况。
- 同步方法:使用 `synchronized` 关键字修饰方法,可以确保整个方法在同一时间只能被一个线程执行,从而保证了方法内部的代码块的原子性。但是,同步方法的粒度较大,可能会导致性能问题,特别是在方法内部包含多个不需要同步的代码块时。
- 同步块:使用 `synchronized` 关键字修饰代码块,可以选择性地同步代码的部分区域,从而提高代码的并发性。同步块可以更细粒度地控制同步范围,但需要注意避免死锁等问题。
更好的选择取决于需求。如果整个方法都需要同步,那么同步方法可能更方便。如果只需要同步方法中的某一部分代码,那么同步块可能更合适。
- 依赖注入(Dependency Injection,DI):依赖注入是一种设计模式,它通过将依赖关系从一个对象传递给另一个对象,来降低耦合度并提高可测试性。在依赖注入中,组件不负责创建它所依赖的对象,而是由外部容器负责创建和注入这些依赖。这有助于松耦合,使得组件更加可复用和可测试。
- 控制反转(Inversion of Control,IoC):控制反转是依赖注入的概念,它强调了控制的转移。传统上,程序中的控制流程由程序员直接控制,而在控制反转中,控制流程由外部容器或框架来控制。这样,程序员不再需要显式地创建和管理对象的依赖关系,而是将这些控制权交给外部容器。
总结:依赖注入是实现控制反转的一种方式,它通过将对象的依赖关系从程序代码中剥离出来,从而实现松耦合和可维护的代码。
1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话
2)向学生表添加如下信息:
学号 姓名 年龄 性别 联系电话 学历
1 A 22 男 123456 小学
2 B 21 男 119 中学
3 C 23 男 110 高中
4 D 18 女 114 大学
3) 修改学生表的数据,将电话号码以 11 开头的学员的学历改为“大专”
4) 删除学生表的数据,姓名以C开头,性别为“男’的记录删除
5) 查询学生表的数据,将所有年龄小于 22 岁的,学历为“大专”的,学生的姓名和学号示出来
6) 查询学生表的数据,查询所有信息,列出前 25%的记录
7) 查询出学生表所有学生的姓名,性别,年龄降序排列
8) 按照性别分组查询学生表所有学生的平均年龄
1) 创建学生表:
CREATE TABLE Student (
学号 INT PRIMARY KEY,
姓名 VARCHAR(50),
年龄 INT,
性别 VARCHAR(10),
家庭住址 VARCHAR(100),
联系电话 VARCHAR(20)
);
2) 向学生表添加信息:
INSERT INTO Student (学号, 姓名, 年龄, 性别, 联系电话, 学历)
VALUES
(1, 'A', 22, '男', '123456', '小学'),
(2, 'B', 21, '男', '119', '中学'),
(3, 'C', 23, '男', '110', '高中'),
(4, 'D', 18, '女', '114', '大学');
3) 修改学生表数据:
UPDATE Student
SET 学历 = '大专'
WHERE 联系电话 LIKE '11%';
4) 删除学生表数据:
DELETE FROM Student
WHERE 姓名 LIKE 'C%' AND 性别 = '男';
5) 查询学生表数据:
SELECT 学号, 姓名
FROM Student
WHERE 年龄 < 22 AND 学历 = '大专';
6) 查询学生表数据:
SELECT *
FROM Student
ORDER BY 学号
LIMIT (SELECT COUNT(*) FROM Student) / 4;
7) 查询学生表数据:
SELECT 姓名, 性别, 年龄
FROM Student
ORDER BY 年龄 DESC;
8) 按照性别分组查询学生表数据:
SELECT 性别, AVG(年龄) AS 平均年龄
FROM Student
GROUP BY 性别;
请注意,以上 SQL 语句只是示例,博主仅记录发表,不保证正确性。
1.购物车表:cartdetail
序号 | Spdm | ysJe |
商品编码 | 金额 | |
1 | 4103 | 100 |
2 | 4103 | 200 |
3 | 4105 | 200 |
4 | 4071 | 125 |
5 | 4103 | 100 |
6 | 4105 | 100 |
2.返券规则表:view_info_fq_new
Ozdm | Dqdm | Spdm | Fqbz | Fqje | Ksrq | Jsrq | Qssd | Zzsd |
券种编码 | 档期代码 | 商品代码 | 满足金额 | 返券金额 | 开始日期 | 结束日期 | 开始时间 | 结束时间 |
AA00000003 | 2023050101 | 4103 | 200 | 200 | 2023-5-1 | 2023-5-30 | 00:00 | 23:58 |
AA00000004 | 2023050101 | 4105 | 200 | 100 | 2023-5-1 | 2023-5-30 | 00:00 | 23:58 |
1.请根据返券规则写出上面购物车中每个商品的返券金额,同时写出通过返券规则计算购物车中商返券的关联 sql 语句
SELECT
cd.Spdm,
cd.ysJe,
COALESCE(vifn.Fqje, 0) AS 返券金额
FROM
cartdetail cd
LEFT JOIN
view_info_fq_new vifn ON cd.Spdm = vifn.Spdm
AND cd.ysJe >= vifn.Fqbz
AND CURDATE() BETWEEN vifn.Ksrq AND vifn.Jsrq
AND CURTIME() BETWEEN vifn.Qssd AND vifn.Zzsd;
解:使用了左连接来将购物车商品与返券规则进行匹配。条件包括购物车商品的商品编码与返券规则的商品代码匹配,购物车商品金额大于等于返券规则的满足金额,以及当前日期和时间在返券规则的生效日期范围内。使用 `COALESCE` 函数可以保证如果没有匹配到返券规则,则返券金额为 0。
SELECT cd.序号, cd.Spdm, vifn.Fqje AS 返券金额
FROM cartdetail cd
LEFT JOIN view_info_fq_new vifn ON cd.Spdm = vifn.Spdm AND cd.ysJe >= vifn.Fqbz
解:使用左连接(LEFT JOIN),将购物车表(cartdetail)与返券规则表(view_info_fq_new)进行关联。通过商品编码(Spdm)和满足金额(ysJe)进行匹配,并筛选出购物车中每个商品对应的返券金额(Fqje)。如果购物车中某个商品无法匹配到返券规则,则返券金额为 NULL。
执行结果:
序号 | Spdm | 返券金额 |
---|---|---|
1 | 004103 | 200 |
2 | 004103 | 200 |
3 | 004105 | 100 |
4 | 004071 | NULL |
5 | 004103 | 200 |
6 | 004105 | 100 |
以上是购物车中每个商品对应的返券金额。购物车中的商品编码(Spdm)与返券规则表中的商品代码(Spdm)进行匹配。购物车中的满足金额(ysJe)与返券规则表中的满足金额(Fqbz)进行比较,只有当购物车中商品的金额大于等于返券规则中的满足金额时,才会获得对应的返券金额。
根据购物车表cartdetail和返券规则表view_info_fq_new,可以写出如下SQL语句计算每个商品的返券金额:
SELECT
c.Spdm,
SUM(c.ysJe) total,
MAX(CASE WHEN c.Spdm = r.Spdm AND SUM(c.ysJe) >= r.Fqbz THEN r.Fqje ELSE 0 END) fqje
FROM cartdetail c
LEFT JOIN view_info_fq_new r
ON c.Spdm = r.Spdm
GROUP BY c.Spdm;
SQL操作:
1. 从购物车表cartdetail中分组查询每个商品的总金额SUM(ysJe)。
2. 左连接返券规则表view_info_fq_new,匹配商品代码和满足返券条件。
3. 使用CASE WHEN判断:
- 商品代码匹配并且总金额大于等于满足返券金额Fqbz时,返回返券金额Fqje
- 其他情况返回0
4. GROUP BY分组,最终可以得到每个商品的总金额和对应的返券金额。
5.一次性根据购物车数据和返券规则计算出每个商品的返券情况。
请注意,以上答案仅供参考,博主仅记录发表,不保证正确性。
下课。