test

Mybatis中的update动态SQL语句

痞子三分冷 提交于 2020-03-04 17:21:22
Mybatis中的update动态SQL语句 Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="entityRelationResultMap"> SELECT * FROM ENTITY_RELATION WHERE SRC_ID=#{srcId} </select> 其中id对应同名java文件中的方法,resultMap对应的自定义的数据类型(当使用java自带类型就更容易了,比如java.lang.String之类的)。 但是涉及到更新操作时,可能不需要对所有字段更新,这时不需要更新的字段需要保持原字段信息,当使用以下信息就会报错: <update id="updateOne" parameterType="com.inspur.search.data.EntityRelation"> update ENTITY_RELATION SET SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId}, DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId} where id=#{id} </update> 因为不更新的字段

[zz]Boost智能指针——scoped_ptr

非 Y 不嫁゛ 提交于 2020-03-04 16:50:51
boost::scoped_ptr 和 std::auto_ptr 非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用: #include <string> #include <iostream> #include <boost/scoped_ptr.hpp> class implementation { public : ~implementation() { std::cout << "destroying implementation/n" ; } void do_something() { std::cout << "did something/n" ; } }; void test() { boost::scoped_ptr<implementation> impl( new implementation()); impl->do_something(); } void main() { std::cout<< "Test Begin ... /n" ; test(); std::cout<< "Test End./n" ; } 该代码的输出结果是: Test Begin ... did something destroying implementation Test End. 可以看到:当 implementation

一次SQL查询优化原理分析(900W+数据,从17s到300ms)---转载

烈酒焚心 提交于 2020-03-04 15:35:47
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时 16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时 347 ms (execution: 163 ms, fetching: 184 ms); 操作: 查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段; 原理: 减少回表操作; -- 优化前SQL SELECT 各种字段 FROM `table_name` WHERE 各种条件 LIMIT 0,10; -- 优化后SQL SELECT 各种字段 FROM `table_name` main_tale RIGHT JOIN ( SELECT 子查询只查主键 FROM `table_name` WHERE 各种条件 LIMIT 0,10; ) temp_table ON temp_table.主键 = main_table.主键 找到的原理分析:MySQL 用 limit 为什么会影响性能? 一,前言 首先说明一下MySQL的版本: mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.17 | +-----

EF5.0中的跨数据库操作

血红的双手。 提交于 2020-03-04 15:32:21
  以前在用MVC + EF 的项目中,都是一个数据库,一个DbContext,因此一直没有考虑过在MVC+EF的环境下对于多个数据库的操作问题。等到要使用时,才发现这个问题也不小(关键是有个坑)。直接说这个问题的解决流程吧: 1) 由以往的经验:在ADO.NET中,要操作多个数据库,那就多写两个SqlHelper吧,或封装下,能动态的修改链接字符串。因此想到在这里能不能建多个ADO.NET实体数据模型呢?于是乎就有了这样两个文件:SealDBModel.edmx及UcmsDBModel.edmx。 2) SealDBModel是主要的,因此在Server中对其处理,作了继承。也同时使用了UcmsDBModel。为了做测试,使用了以下代码: namespace Seal_Services { public class seal_testServer : BaseServer<seal_test>, Iseal_usersServer { public void TTTT() { try { seal_test test = new seal_test() { name = "1111", age = 1 }; base.AddEntity(test); base.db.SaveChanges(); BaseUCMSServer<au_Role> ucmsserver = new

Robot Framework变量的使用技巧

て烟熏妆下的殇ゞ 提交于 2020-03-04 15:26:15
1、变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项。 通过命令行设置的变量是全局变量,对其所有执行的用例都有效。它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量。 设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值。 可以多次使用该选项设置多个变量。仅有标量变量可以使用该语法且只能赋值字符串。许多特殊字符在命 令行中很难表示,但可以使用转义字符转义它们,使用—escape 选项。 --variable EXAMPLE:value --variable HOST:localhost:7272 --variable USER:robot --variable ESCAPED:Qquotes_and_spacesQ --escape quot:Q --escape space:_ 在命令行中使用变量文件的基本语法是--variablefile path/to/variables.py 使用 Set Test Variable 创建的变量,可以在该测试用例范围内的任何位置有效。例如,你在一个用户关键字 中创建了变量,它将在测试用例级别有效及当前测试中的所有其他用户自定义关键字中有效

Robot Framework使用技巧之内部变量

瘦欲@ 提交于 2020-03-04 12:08:10
【转载】 1、变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项。 通过命令行设置的变量是全局变量,对其所有执行的用例都有效。它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量。 设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值。 可以多次使用该选项设置多个变量。仅有标量变量可以使用该语法且只能赋值字符串。许多特殊字符在命 令行中很难表示,但可以使用转义字符转义它们,使用—escape 选项。 --variable EXAMPLE:value --variable HOST:localhost:7272 --variable USER:robot --variable ESCAPED:Qquotes_and_spacesQ --escape quot:Q --escape space:_ 在命令行中使用变量文件的基本语法是--variablefile path/to/variables.py 使用 Set Test Variable 创建的变量,可以在该测试用例范围内的任何位置有效。例如,你在一个用户关键字 中创建了变量

Robot Framework使用技巧

亡梦爱人 提交于 2020-03-04 12:05:49
1、变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项。 通过命令行设置的变量是全局变量,对其所有执行的用例都有效。它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量。 设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值。 可以多次使用该选项设置多个变量。仅有标量变量可以使用该语法且只能赋值字符串。许多特殊字符在命 令行中很难表示,但可以使用转义字符转义它们,使用—escape 选项。 --variable EXAMPLE:value --variable HOST:localhost:7272 --variable USER:robot --variable ESCAPED:Qquotes_and_spacesQ --escape quot:Q --escape space:_ 在命令行中使用变量文件的基本语法是--variablefile path/to/variables.py 使用 Set Test Variable 创建的变量,可以在该测试用例范围内的任何位置有效。例如,你在一个用户关键字 中创建了变量,它将在测试用例级别有效及当前测试中的所有其他用户自定义关键字中有效

Java回顾之序列化

大城市里の小女人 提交于 2020-03-04 09:21:57
在这篇文章里,我们关注对象序列化。   首先,我们来讨论一下什么是序列化以及序列化的原理;然后给出一个简单的示例来演示序列化和反序列化;有时有些信息是不应该被序列化的,我们应该如何控制;我们如何去自定义序列化内容;最后我们讨论一下在继承结构的场景中,序列化需要注意哪些内容。   序列化概述   序列化,简单来讲,就是以“流”的方式来保存对象,至于保存的目标地址,可以是文件,可以是数据库,也可以是网络,即通过网络将对象从一个节点传递到另一个节点。   我们知道在Java的I/O结构中,有ObjectOutputStream和ObjectInputStream,它们可以实现将对象输出为 二进制流,并从二进制流中获取对象,那为什么还需要序列化呢?这需要从Java变量的存储结构谈起,我们知道对Java来说,基础类型存储在栈上,复杂类 型(引用类型)存储在堆中,对于基础类型来说,上述的操作时可行的,但对复杂类型来说,上述操作过程中,可能会产生重复的对象,造成错误。   而序列化的工作流程如下:   1)通过输出流保存的对象都有一个唯一的序列号。   2)当一个对象需要保存时,先对其序列号进行检查。   3)当保存的对象中已包含该序列号时,不需要再次保存,否则,进入正常保存的流程。   正是通过序列号的机制,序列化才可以完整准确的保存对象的各个状态。   序列化保存的是对象中的各个属性的值

python导入模块

北城余情 提交于 2020-03-04 09:09:09
1、模块的定义: 模块定义:用来逻辑上组织python代码(变量、函数、类、逻辑;目的是:实现一个功能),本质就是.py结尾的python文件。 补充: 包的定义:用来从逻辑组织模块的,本质就是一个目录(必须带有一个__init__.py文件)2、导入方法: 导入模块的方法: 1.import module_name 导入一个模块 使用的时候需要加上前缀module_name.name 2.import module_name,module2_name 导入多个模块 3.from module_name import * 导入module_name模块里边的所有变量,不建议使用! 4.from module_name import name 只导入module_name里边的name解释了一遍。 使用的时候直接 name 调用即可 import 和from 的区别 1.import 的时候 module_name.logger() 2.from 的时候 logger() 直接执行;from的时候等于把所有代码都复制了一份,执行一下。 解释器:做的事就是指定一个变量 并指向一个内存地址,将代码内容放在了内存地址里边。 导入包的方法: import 包的名字  多级目录导入方法:   查看当前路径:   import sys   sys.path   查找父及目录   import

copy-webpack-plugin示例

偶尔善良 提交于 2020-03-04 08:11:20
配置信息 webpack.config.js var path = require('path'); var CopyWebpackPlugin = require('copy-webpack-plugin'); module.exports = { entry: path.resolve(__dirname, 'src'), output: { path: path.resolve(__dirname, 'build'), filename: 'app.js' }, context: path.resolve(__dirname, 'src'), plugins: [ new CopyWebpackPlugin([{ from: 'test/test.js', to: 'test' }], { ignore: [], copyUnmodified: true }) ] }; 来源: CSDN 作者: stanleyhsl 链接: https://blog.csdn.net/stanleyhsl/article/details/104632541