table

玩转单元测试之DBUnit

不问归期 提交于 2020-03-09 20:15:54
DBunit 是一种扩展于JUnit的数据库驱动测试框架,它使数据库在测试过程之间处于一种已知状态,如果一个测试用例对数据库造成了破坏性影响,它可以帮助避免造成后面的测试失败或者给出错误结果。 虽然不是什么新鲜货,但最近正好用到,就把学到的跟大家分享一下。 关键词:数据库层测试,DAO层测试,DBUnit教程,DBUnit入门,DBUnit实例,Sring中结合DBUnit对Dao层测试 目录 简介 前提条件 Maven配置 准备工作 实例详解 测试基类 关于数据集 Example 1 FlatXmlDataSet Example 2 ReplacementDataSet Example 3 XlsDataSet Example 4 QueryDataSet Example 5 other Troubleshooting 参考 简介 DBunit通过维护真实数据库与数据集(IDataSet)之间的关系来发现与暴露测试过程中的问题。IDataSet 代表一个或多个表的数据。此处IDataSet可以自建,可以由数据库导出,并以多种方式体现,xml文件、XLS文件和数据库查询数据等。 基于DBUnit 的测试的主要接口是IDataSet, 可以将数据库模式的全部内容表示为单个IDataSet 实例。这些表本身由Itable 实例来表示。 IDataSet 的实现有很多

Otter双A同步搭建入门教程

烂漫一生 提交于 2020-03-09 20:10:21
1.准备阶段 1.1 环境 虚拟机A : 192.168.0.130 虚拟机B :192.168.0.131 系统: Ubuntu 16.04 LTS JRE:OpenJDK 1.8.0_151(A、B都要安装) DB:MySQL 5.7.20(A、B都要安装) ZooKeeper:3.4.11(只装A机) Otter Manager:4.2.14 (只装A机)( 4.2.15 启动Node时感觉有Bug,没有使用) Otter Node:4.2.14(A、B都要安装) 1.2 安装环境 1.2.1 JRE安装 sudo apt-get install default-jre 1.2.2 MySQL安装 sudo apt-get install mysql-server sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf character-set-server=utf8 log-bin=mysql-bin binlog-format=ROW server-id=1 #A,B需要设置成不一样的id #bind-address=127.0.0.1 #注释该行 service mysql restart 进入mysql,设置单独账号密码 grant all on *.* to 'root'@'%' identified by 'password';

Linux之磁盘管理

天涯浪子 提交于 2020-03-09 19:39:40
一、Raid卡之初识 又叫磁盘冗余阵列,阵列卡。他的主要作用有三点 1、获取更高的容量 2、获取更高的性能 3、获取更强的安全性 raid卡按 支持的raid级别不同 和raid卡的 缓存容量 不同,分为基础raid卡和高级raid卡 左边是raid基础卡,右边是高级卡。 基础卡只支持raid0和raid1 高级卡支持0、1、3、5、10、11或者更多 常见的raid级别 raid0 主要是为了应对不做raid用不了的情况。 硬盘不做raid,识别不了硬盘。所以如果只有一块硬盘,就做个raid0吧。 安全性最低,其中一个硬盘坏掉了,所有数据都会报废。 用于安全性需求低的数据,不怕丢失的数据。优点就是读写快 raid1 只能有两块硬盘 算是个鸡肋,因为只能同时给两个硬盘做raid1。 raid5 最少需要3块硬盘,在写入之前有一个校验的过程。有一块硬盘用来做校验,用来保护数据的安全性,当其中一块硬盘坏了,就可以使用校验数据恢复丢失的数据。 可以在添加一块热位盘(RAID5 + spare),当坏了一块硬盘之后,可以启动热位盘来替换坏的硬盘。 三个有点都占一点,在并发量不高的时候,可以使用 raid10 读取速度和安全性都很高,但是很奢侈,并发量很大的时候可以使用 raid10的基本原理如下: 二、磁盘分区 磁盘分区表 所在位置:0磁头0磁道1扇区的秘密

HTML ---表格

五迷三道 提交于 2020-03-09 14:59:50
表格 1.简介 表格是一个规则的行列结构,每个表格是由若干行组成,每行是由若干个单元格组成 table、row、column 2.基本结构 2.1 table标签 用来定义表格 常用属性: border边框,默认值为0 width/height宽度/高度 align对齐方式,取值:left center right bordercolor:边框颜色 bgcolor:背景颜色 background:背景图片 cellspacing:间距 单元格与单元格之间的距离 cellpadding:边距 单元格内容与边界之间的距离 2.2 tr标签 用来定义行:table row 常用的属性: align水平对齐 取值left(默认) center right valign垂直对齐 取值top middle bottom bgcolor:背景颜色 background:背景图片 2.3 td标签 用来定义单元格:table data 常用属性:align valign bgcolor background 3.合并单元格 合并单元格也称为表格的跨行和跨列 两个属性: rowspan 设置单元格所跨的行数,如rowspan=“2” 表示跨越2行 colspan 设置单元格所跨的列数,如clospan=“4” 表示跨越4列 步骤: 在跨直的单元格中设置rowspan/colspan属性

BGP-20190321-dampening

五迷三道 提交于 2020-03-09 14:12:09
BGP dampening(惩罚) BGP这个唯一的EGP协议、这个工作在AS by AS之间的外部网关路由协议、 具有了先天的稳定性、主要体现在以下方面: (1)采用TCP传输层协议、端口号179 (2)协议具有惩罚机制、对不稳定的路由进行惩罚、 下文将介绍惩罚的相关实验、证明BGP的稳定性、 (1)底层配置 上图中所有路由器都配有 Loopback 地址,地址分别为: R1 Loopback 0 1.1.1.1/32 R2 Loopback 0 2.2.2.2/32 所有路由器之间运行 OSPF,并将 Loopback 0 的地址发布到 OSPF 中,保证全网Loopback 0 之间是可以通信的。 (2)R1 与 R2 建立 eBGP 邻居关系。 R1: R1(config)#router bgp 1 R1(config-router)#bgp router-id 1.1.1.1 R1(config-router)#neighbor 2.2.2.2 remote-as 2 R1(config-router)#neighbor 2.2.2.2 update-source loopback 1 R1(config-router)#neighbor 2.2.2.2 ebgp-multihop R2: R2(config)#router bgp 2 R2(config-router)

mysql-基本命令与索引

吃可爱长大的小学妹 提交于 2020-03-09 11:48:51
基本SQL命令 库管理 创建库(指定字符集):create database 库名 default charset = utf-8; 查看创建库的语句:show create database 库名; 切换库:use 库名; 查看当前所在库:select database(); 查看库中已有表:show tables; 删除库:drop database 库名; 表管理 创建表(指定字符集):CREATE TABLES 表名(字段名,数据类型,...)DEFAULT CHARSET = UTF-8; 查看创建表的语句(字符集和存储引擎):show create table 表名; 查看表结构:desc 表名; 删除表:drop table 表名; 表记录管理: 插入:insert into 表名 values(),(),...; insert into 表名(字段名列表) values(),(),...; 查询:select * from 表名; select 字段名1,字段名2,...from 表名; 删除:delete from 表名 where 条件; 更新:update 表名 set 字段名=值1,...where 条件; 表字段管理: 添加:alter table 表名 add 字段名 数据类型 first ; alter table 表名 add 字段名 数据类型

PAT | A1026 Table Tennis(待优化)

可紊 提交于 2020-03-09 04:34:54
23分 # include <iostream> # include <vector> # include <queue> # include <algorithm> # include <climits> using namespace std ; struct Customer { int arriveTime ; int remainTime ; int waitTime ; bool vip ; bool serv ; } ; struct Table { int cusId ; int cusNum ; bool hasCus ; bool vip ; } ; bool cmp ( Customer a , Customer b ) { return a . arriveTime < b . arriveTime ; } vector < Customer > customers ; Table tables [ 100 ] ; int cus = 0 ; int n ; int serve ( int curTime , int tableNum ) { int minRemainTime = INT_MAX ; int curLastCum ; //当前时间到达的最后一位顾客的下一个的编号 for ( curLastCum = cus ; curLastCum < n

ABAP笔记1

℡╲_俬逩灬. 提交于 2020-03-09 02:55:21
1. 基本数据类型: C : 1~65535 byte,默认长度为1,初始值为space,字符串编辑不允许换行 D : 日期型,8byte 默认值‘00000000’,最大 9999/12/31 T :时间型,6byte 默认值 ‘000000’ N:数值组成的字符串型,1-65535byte,默认每个位上都是'0',设定前置0时很方便,能计算,但是不能参与负数计算 I :整型,-2^31~2^31-1,默认值为0 F :浮点型,8byte,默认0,可精确到小数点后17位,若为小数,则用引号,几乎不使用,一般用P类型 X : 十六进制,1-65535byte,若值是字母,必须大写,在写文件时,字符串换行 P : packed数,1-16byte,默认值为0,赋值需加引号,赋值长度 = 定义长 * 2 - 1 若L_NUM(3) TYPE P decimals 2,则长度为 3 * 2 - 1 = 5,即小数个位为2,整数位为3。 最多有14位小数位,则最多整数位=2*16-1-14=17位。若小数位超出长度,则按四舍五入去掉多余,若整数位超出长度则程序报错 2. 定义时Type 跟 LIKE 区别: TYPE 后跟类型,8种基本类型或数据元素 LIKE 后跟变量,或数据库字段名,如T001-BUKRS 3. SY-INDEX 系统计数器 SY-DBCNT 符合条件条目数 SY

自动生成构造器,存储过程参数

戏子无情 提交于 2020-03-09 00:03:48
发现写构造器和存储过程参数太麻烦,写了个自动生成的(根据表名) /* 文件头 文件名:TableTask.cs,WebconfigSetTask 存储路径:SqlServerTask 作者:Far.v 建立日期及时间:2008-04-26 9:20 最后修改日期及时间:2008-05-01 11:30 文件功能描述:业务逻辑层 备注: */ namespace SqlServerTask { using System; using System.Data; using System.Data.SqlClient; public class TableTask { private string Parm_Table = "@table"; private string pope; public string ColattStr(string popestr) { switch (popestr) { case "167": return "VarChar"; case "56": return "Int"; case "48": return "TinyInt"; case "104": return "Bit"; case "61": return "DateTime"; case "52": return "SmallInt"; case "127": return

antd的table默认选中和点击选中

徘徊边缘 提交于 2020-03-08 22:53:24
class User extends Interval { constructor(props) { super(props); this.state = { synCode: [], } } render() { console.log(this.state.synCode); const _this = this; const rowSelection = { getCheckboxProps(record) { return { defaultChecked: record.leader === 1, // 配置默认勾选的列 (Bealean) }; }, onChange(selectedRowKeys) { console.log('新来的',selectedRowKeys); // console.log('原来的',_this.state.synCode); _this.setState({synCode: selectedRowKeys}) }, }; return ( <Table rowKey={record => record.id} rowSelection={rowSelection} columns={columns} dataSource={this.state.data} /> ); } } 在 <Table/> 组件中有 rowSelection=