records

Mybatis Plus 使用详解

落花浮王杯 提交于 2020-05-05 01:06:58
Mybatis Plus 是Mybatis的增强插件,对数据库操作Mybatis Plus提供了抽象层次比Mybatis更高的操作方法。 Wrapper是Mybatis Plus里拼接sql的包装类。具体的各种查询功能可以查看 Mybatis Plus 条件构造器官方文档 一、自定义查询字段 EntityWrapper 的setSqlSelect可以定义需要查询的库表字段。但是很多时候我们查询的数据可能来自不同的表,我们这时候可能需要用到子查询,那么这时候该怎么使用EntityWrapper 呢? 答案是直接写在setSqlSelect里面。例 Wrapper<Res> ew = new EntityWrapper<>(); ew.eq("deleted", 0); ew.setSqlSelect("*", "(select name from res_type where id=res_type_id) as res_type_name", "(select name from probe where id=probe_id) as probe_name"); 二、条件查询 一个很常见的场景是查询某字段的时候如果值不为空则查询,否则不查询。Mybatis Plus的拼接sql方法有一个条件拼接。 ew.eq(boolean condition,String column

给MySQL中数据表添加字段

岁酱吖の 提交于 2020-05-04 16:02:29
添加一个char字段: mysql > alter table stock add src char ( 20 ); Query OK, 3766 rows affected ( 0.65 sec) Records: 3766 Duplicates: 0 Warnings: 0 添加一个datatime字段: mysql > alter table stock add ctime datetime not null ; Query OK, 3766 rows affected ( 0.27 sec) Records: 3766 Duplicates: 0 Warnings: 0 查看表定义: mysql > desc stock; + -- -----+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + -- -----+----------+------+-----+---------+-------+ | id | int ( 11 ) | NO | PRI | | | | code | char ( 6 ) | YES | | NULL | | | name | char ( 10 ) | YES | | NULL | | | utime |

【MySQL】EXPLAIN命令详解--解释执行计划

独自空忆成欢 提交于 2020-05-04 00:34:19
具体参考:    https://www.cnblogs.com/gomysql/p/3720123.html 原文如下: 在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。需要注意的是,生成的QEP并不确定,它可能会根据很多因素发生改变。MySQL不会将一个QEP和某个给定查询绑定,QEP将由SQL语句每次执行时的实际情况确定,即便使用存储过程也是如此。尽管在存储过程中SQL语句都是预先解析过的,但QEP仍然会在每次调用存储过程的时候才被确定。 通过执行计划可以知道什么? (root@yayun-mysql-server) [test]>explain select d1.age, t2.id from (select age,name from t1 where id in (1,2))d1, t2 where d1.age=t2.age group by d1.age, t2.id order by t2

Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结

假如想象 提交于 2020-05-02 18:18:08
Bootstrap 表格插件 bootstrap-table 配置与应用小结 by: 授客 QQ : 1033553122 1. 测试环境 win7 JQuery-3.2.1.min.js 下载地址: https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js Bootstrap-3.3.7-dist 下载地址: https://gitee.com/ishouke/front_end_plugin/blob/master/bootstrap-3.3.7.zip bootstrap-table-develop-v1.12.1.zip 下载地址: https://github.com/wenzhixin/bootstrap-table https://gitee.com/ishouke/front_end_plugin/blob/master/bootstrap-table-develop-v1.12.1.zip 2. 配置与应用 效果展示 HTML代码片段 head设置 <!DOCTYPE html > < html lang= "zh-cn" > < head > < meta charset= "utf-8" > < meta http-equiv= "X-UA-Compatible"

mongodb单机和分布式安装部署过程

ぐ巨炮叔叔 提交于 2020-05-01 02:41:40
mongodb 1.部署 a. 单机部署 1.配置MongoDB的yum源 创建yum源文件: vim /etc/yum.repos.d/mongodb-org-3.4.repo 添加以下内容: [mongodb-org-3.4] name=MongoDB Repository baseurl= https://repo.mongodb.org/yum/redhat/ $releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey= https://www.mongodb.org/static/pgp/server-3.4.asc 这里可以修改 gpgcheck=0, 省去gpg验证 安装之前先更新所有包 :yum update (可选操作) 2.安装MongoDB 安装命令: yum -y install mongodb-org 安装完成后 查看mongo安装位置 whereis mongod 查看修改配置文件 : vim /etc/mongod.conf 3.启动MongoDB 启动mongodb :systemctl start mongod.service 停止mongodb :systemctl stop mongod.service 查到mongodb的状态:systemctl status mongod

关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现

妖精的绣舞 提交于 2020-04-30 11:29:04
参考了许多的资料和不断地调试,总算把这个问题弄清楚了。实现了一个简单的分页示例,虽然这样的做法不是太好。 程序有3个控件 BindingNavigator: 就是DataGridView控件上面的那个,在工程里名字: bindngrDemo DataGridView: dgvDemo BindingSource: 这个其实可以不要 bindseDemo 示例采用的是SQL SERVER的示例数据库pub 在pub数据库里写入分页存储过程 CREATE PROCEDURE [dbo].[Pagination] @Columns VARCHAR (500), -- The columns to be displayed, divide by comma @Tablename VARCHAR (100), -- The name of the table to be searched @OrderColumnName VARCHAR (100), -- The name of the column to be used in order @ Order VARCHAR (50), -- The order method, ASC or DESC @ Where VARCHAR (100), -- The where condition, if there is not conditon

MySQL数据库的恢复

夙愿已清 提交于 2020-04-30 11:25:21
数据库恢复是指以备份为基础,与备份相对应的系统维护和管理操作;系统进行恢复操作时,先执行一些系统安全性的检查,包括检查所要恢复的数据库是否存在、数据库是否变化及数据库文件是否兼容等,然后根据所采用的数据库备份类型采取相应的恢复措施。 数据库恢复机制设计的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。 建立冗余数据最常用的技术是数据转储和登录日志文件。通常在一个数据库系统中,这两种方法是一起使用的。 数据转储是 DBA 定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的版本成为后备副本或后援副本。 可使用 LOAD DATA…INFILE 语句来恢复先前备份的数据。 将之前导出的数据备份文件 file.txt 导入数据库 test_db 的表 tb_students_copy 中,其中 tb_students_copy 的表结构和 tb_students_info 相同。 首先创建表 tb_students_copy,输入的 SQL 语句和执行结果如下所示。 mysql> CREATE TABLE tb_students_copy -> LIKE tb_students_info; Query OK, 0 rows affected (0.52 sec) mysql> SELECT * FROM tb_students_copy;

Kafka常见错误整理(不断更新中)

二次信任 提交于 2020-04-29 18:11:26
1、UnknownTopicOrPartitionException org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition 报错内容:分区数据不在 原因分析:producer向不存在的topic发送消息,用户可以检查topic是否存在 或者设置auto.create.topics.enable参数 2、LEADER_NOT_AVAILABLE WARN Error while fetching metadata with correlation id 0 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient 报错内容:leader不可用 原因分析:原因很多 topic正在被删除 正在进行leader选举 使用kafka-topics脚本检查leader信息 进而检查broker的存活情况 尝试重启解决 3、NotLeaderForPartitionException org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not

Kafka: Exactly-once Semantics

懵懂的女人 提交于 2020-04-29 17:16:37
https://www.confluent.io/blog/enabling-exactly-kafka-streams/ https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging Exactly Once Delivery and Transactional Messaging in Kafka https://docs.google.com/document/d/11Jqy_GjUGtdXJK94XGsEIK7CP1SnQGdp2eF0wSw9ra8/edit# Overview Kafka stream其实就是重用的samza,流pipeline上的所有节点都是解耦合的,所以所有节点的snapshot和恢复策略都是local的。 其实Global或local的checkpoint策略没有好坏之分,是全局还是局部,关键是在哪里replay数据 如果你只能在source去replay数据,那么就必须要采用global的snapshot,否则无法保证全局一致 但是如果我们可以在每个处理节点去replay数据,那就没有必要做global snapshot, 而kafka天然作为replay数据的基础设施

Delphi

故事扮演 提交于 2020-04-29 11:03:59
Delphi SuperDll 作为一名5年的Delpher,一直认为Delphi是桌面应用的王者,我相信其他的Delpher也这么认为。 但是,慢慢的我发现普通方式的Delphi开发会造成代码的严重臃肿,特别是MDI类大型项目、多人同时开发的情况下。 举个例子,一个Delphi常用的业务逻辑,数据导出到Excel,完全可以写成一个公用的模块放置在业务单元,子窗体用到时直接调用即可,但是一般情况下,事情并不止想象的那么简单,维护人员的思想真的一言难尽。 后来,我有了将Delphi中常用的业务逻辑功能封装成DLL的想法,所有的业务逻辑只能在DLL中实现,系统中不允许直接写业务逻辑,只能调用DLL。 这么做的好处是,相同的业务功能不会被重复开发,大大减少了代码的臃肿,同时,业务逻辑开发人员和前台开发人员独立开来,提高了开发效率。 这里就是SuperDLL的由来,后续将持续更新。 请看如下代码: 更新日志: //初始化 //邮件发送 //FTP上传、下载 //cxGrid数据导出 1 library SuperDll; 2 3 { Important note about DLL memory management: ShareMem must be the 4 first unit in your library's USES clause AND your project's