开源日志记录组件Log4Net的使用
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。 使用步骤 在项目中添加Nuget程序包,搜索并安装Log4Net组件。 在项目中添加一个配置文件,配置log4net的节点内容如下。建议不要使用VS自动创建的App.config文件,因为它会覆盖编译后生成的app.exe.config文
将dataGridView内容导出到Excel文件
将dataGridView内容导出到Excel文件private void ExportToExcel() { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl files (*.xls)|*.xls"; saveFileDialog.Filter
Jenkins执行远程Windows批处理的权限问题
Jenkins构建Windows批处理时可能会遇到访问权限的问题,导致无法执行,或者虽然能执行,但无法访问到远程目录文件,以下是几个典型错误及其处理。 Jenkins任务执行失败,提示信息:拒绝访问。解决办法:修改Jenkins服务属性,登录身份由默认的本地系统帐户更改为指定的帐户,修改后重启服务。 Jenkins任务执行失败,提示信息:用户名和密码错误。一个现象就是每次电脑重启后,登陆网上共
使用持续集成工具Jenkins进行Kettle作业调度
Jenkins是一个开源的持续集成工具,用于监控持续重复的工作,其主要目的是监控软件开发流程,使整个集成过程自动化。用JAVA开发,因此需要事先安装配置好JAVA环境,下载安装较新版本的JDK,并配置好JAVA环境变量。可以利用该工具进行ETL作业如Kettle作业的后台调度。 Jenkins的下载和安装下载地址:https://jenkins.io/download/使用默认安装路径,软件默认
比较两个List对象,找出新增、删除、更改的条目
需求说明我们在开发过程中,经常需要对比两个List对象的数据,找出新增、删除、更改的条目。典型的情况如需要根据前端给出的请求列表,与后台表中当前具有的记录做比较,然后对后台表做增、删、改的操作。为此,以下举例总结List对象的比对方法。 新建一个控制台程序新建一个控制台程序作为例子。 定义一个记录数据条目的类 public class Class1 { pub
在Web API程序中使用Swagger做接口文档
在Web API程序中使用Swagger做接口文档创建Web API程序在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用。 安装Swashbuckle使用NuGet包管理器,查找安装Swashbuckle,也就是Swagger插件。 配置SwaggerConfig在APP_START里找到Swa
使用profiler测试Oracle PL/SQL性能
Oracle存储过程和PL/SQL代码常常包含了多个子过程和SQL,对于单个的SQL,我们很容易分析他的执行效率,但是对于PL/SQL存储过程,我们如何分析它的执行效率、具体每一步的耗时情况呢?Oracle提供了profiler工具可以比较好的解决这个问题。 一、使用前的准备工作 1、检查DBMS_PROFILER包是否安装 desc dbms_profiler;&n
Android通过接收UDP消息改写程序配置
Android程序打包成APK发布后,如果有参数需要根据不同应用环境作修改,该如何实现呢?比如这里有个应用场景,Android程序需要调用服务器端的WebService服务来进行后台数据库操作,而WebService的IP地址随各个生产环境有所不同,如果每次都因为地址的变更而重新编译打包程序,明显不便。如果我们能找到一种方式,在不对APK程序做任何改动的情况下,动态修改这个地址参数配置,将是多么灵
Android读取配置文件的方法
1、配置properties文件先创建properties文件,存放在安卓工程文件的assets文件夹下创建后的文件目录结构如下文件内容按照“参数=值”的键值对形式组织2、配置文件的读取以下是读取config.properties配置文件的例子:// 读取参数配置Properties props = new Properties();try {props.load(getApplicationCo
NOT IN之后的子查询不能包含NULL值
如果空值可能是子查询结果的一部分,则不应与主查询中的NOT IN运算符一起使用。为什么呢?看下面例子就明白了。 NOT IN后面的子查询有记录为NULL,主查询查不到记录select * from emp where 3 not in (1, 2, null); 未选定行 因为这个查询可以理解为select * from emp where 3 1
区分关联子查询和非关联子查询
子查询可区分为关联子查询和非关联子查询,他们和外层查询之间的执行顺序和关系是不同的。关联子查询:在关联子查询中,对于外部查询返回的每一行数据,内部查询都要执行一次。另外,关联子查询的信息流是双向的,外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录,之后外部查询根据返回的记录做出决策。select * from dept d where exists(select
insert all和insert first语句的用法
insert all和insert first语句,用于按给定条件同时向多个表插入数据,以下记录了它们的用法和区别。1、无条件insert all用于不分条件的向几个表同时插入一批数据。建立测试表create table t1(a number, b varchar2(20));insert into t1 values(1, 'aaa');insert into t1 value
Python将xml格式转换为json格式
在Python编程中,经常遇到xml格式的文件或字符串。由于json格式的方便性,常常希望将xml格式转换为json格式来处理,这可以通过模块xmltodict来实现。 xmltodict模块通过pip来下载和安装:C:\>pip3 install xmltodictCollecting xmltodict Downloading https://files.pytho
windows下如何打开.ipynb文件
.ipynb文件全称叫ipython notebook,又名Jupyter notebook,是一个交互式笔记本,支持运行40多种编程语言。Jupyter Notebook的本质是一个Web应用程序,便于创建和共享文学化的程序文档。在命令行下可用pip下载并安装pip install jupyter安装完成后,在命令行下输入jupyter notebook可启动浏览器,进入Web程序界面也可以通过
Python字典格式与JSON格式的相互转换
Python中可以方便的通过JSON模块来实现字典格式与JSON字符串格式的相互转换,以下是示例代码。#!/usr/bin/python#-*- coding:utf-8 -*-import json'''dumps():将字典转换为JSON格式的字符串loads():将JSON格式的字符串转化为字典dump() :将字典转换为JSON格式的字符串,并将转化后的结果写入文件
使用正则表达式对数字字符串字段排序
我们在给含有数字的字符串字段进行排序时,常常会遇到一个尴尬的情况,用简单的order by无法给这些字段完整的排序,如以下查询效果,不符合我们的预期:select * from tb1 order by name;怎么办呢?用正则表达式可以解决这个问题,下面给个完整例子:创建测试表create table tb1(name varchar2(50), val number);insert into
用listagg函数分组实现列转行
listagg是Oracle 11.2中新增的函数,listagg可以对order by子句中指定的每个组内的数据进行排序,然后连接这些列的值。以下是简单的应用举例: SELECT deptno, listagg(ename, ',') WITHIN GROUP(ORDER BY ename) AS employees FROM scott.emp GROUP BY de
数据泵导出导入
出于许多原因,我们期望从某个数据库中提取大量数据以及关联的对象定义,并且采用一种更容易的方式将这些数据载入到另一个数据库中。备份就是其中一个重要原因,另外可能需要在生产与测试环境之间或联机系统与数据仓库之间转移数据。数据泵Data Pump是用于在Oracle数据库间进行大规模、快速数据传输的工具。 1、Data Pump的体系结构 Data Pump是一个服务器端的实用程序,