首页 文章 精选 留言 我的

精选列表

搜索[财政票据应用],共10012篇文章
优秀的个人博客,低调大师

Docker应用部署

mysql 部署1)拉取mysql镜像 docker pull centos/mysql-57-centos 2)创建容器 docker run -id --name=mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos -p 代表端口映射,宿主机端口:容器运行端口-e 添加环境变量MYSQL_ROOT_PASSWORD 是root的登录密码3)远程连接mysql宿主机端口(192.168.154.201:33306) root 123456tomcat部署1)拉取镜像 docker pull tomcat 2)创建容器-p创建地址映射 docker run -id --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat 3)在/usr/local/webapps 创建1.html hello world 4)访问192.168.154.201:9000/1.htmlNginx部署1)拉取镜像 docker pull nginx 2)创建Nginx容器 docker run -id --name=myNginx -p 80:80 nginx redis部署1)拉取镜像 docker pull redis 2)创建容器 docker run -id --name=myredis -p 6379:6379 redis

优秀的个人博客,低调大师

zyUpload的应用

zyUpload 是一个界面绝佳、体验超棒的 HTML5 上传插件,在网上随便就可以下载到。 使用zyupload插件的时候,只需要注意替换js中的 URL 路径,就是后台给的接口地址。 同时要把代码放在后台的路径中,这样才能运行。 1、首先下载demo(点击下载) 2、确保php环境在5.3以上。 3、将下载的文件解压后,将demo文件夹移动到主机目录localhost文件夹下面。 4、打开浏览器输入(http://localhost/demo/demo.html) 5、如果出现如下界面说明成功。 6、配置zyUpload.js zyUpload文件中含有该插件显示在页面的html和图片上传的逻辑。 在zyUpload.js文件中做文件的各种限制 文件大小 文件大小格式等等 7.操作面板配置。 8、上传后的图片在demo/uploads下面。

优秀的个人博客,低调大师

OTL技术应用

什么是OTL:OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示: 数据库 访问接口 支持版本 Oracle OCI OCI7、OCI8、OCI8i、OCI9i、OCI10g DB2 CLI DB2 CLI MS SQL Server 、Sybase、Informix 、MySQL、 Interbase/Firebird、PostgreSQL、SQLite、SAP/DB、TimesTen、MS ACCESS ODBC ODBC2.5、ODBC3.x Oracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵。 OTL中直接操作Oracle主要是通过Oracle提供的OCI接口进行,依赖于Oracle客户端。 OTL使用简单, 只要头文件中包含有: #include “otlv4.h” 就可,实际上整个OTL就一个“.H”的文件,使用起来极为的方便。 优点 (1).跨平台 (2).运行效率高,与C语言直接调用数据库API相当 (3).开发效率高,使用方便,繁在其内,简在其外,比 ADO.net使用起来更简单,更简洁 (4).部署容易,不需要ADO组件,不需要.net framework 等 缺点 (1).只能在C++中使用 OTL的主要类 主要类包括:otl_stream、otl_connect、otl_exception •otl_stream类 otl_stream类是OTL“流”的概念的具体表现形式,任何通过输入/输出参数使用SQL语句、PL/SQL 块或者是存储过程调用,在C++的编程中都能通过otl_stream类来实现。 其构造函数为: (1)for Oracle 7/8/9/10: otl_stream(const int arr_size, // 流的缓存大小 const char* sqlstm, // SQL语句或PL/SQL块或存储过程 otl_connect& db, // OTL数据库连接对象 const char* ref_cur_placeholder=0, // 游标引用占位符名称 const char* sqlstm_label=0 // SQL 语句标签); (2)forODBC/DB2-CLI: otl_stream(const int arr_size,// 流的缓存大小 constchar* sqlstm,// SQL语句或PL/SQL块或存储过程 otl_connect& db,// OTL数据库连接对象 const int implicit_select=otl_explicit_select , const char* sqlstm_label=0//SQL 语句标签); OTL流构造函数,负责创建otl_stream对象并调用open()(解析sql语句)方法。 otl_stream的性能主要被缓冲区大小arr_size一个参数控制。缓冲区大小定义了插入表的逻辑行以及与数据库一次往反交互(one round-trip to the database)过程中从表或视图中查询的逻辑行。 (3)void set_commit(int auto_commit=0); 设置流的auto_commit标志。默认情况下,该标志被置1,即当输出缓冲区刷新时,当前的事务被自动提交。 注意流的auto_commit标志和数据库的自动提交模型没有任何关系。 (4)void set_flush(const bool auto_flush=true); 设置auto_flush标志。默认情况下auto_flush的值为true, 即如果缓冲区出现脏数据则在流的析构函数中刷新缓冲区。如果自动刷新标志被关闭,则需要使用close()方法或者flush()方法对流进行刷新。 注意该函数仅仅能够设置流的析构函数中是否自动刷新,并不是通常意义上的缓冲区刷新。 (5)voidflush(void); 刷新流的输出缓冲区。当输出缓冲区被填满时,缓冲区将被自动刷新。如果流的auto_commit标志被置上,则在刷新完毕后当前事务被提交。 •otl_connect类 otl_connect类封装了一系列有关数据库连接的功能:建立连接、断开连接、事务提交、事务回滚等等。换言之,otl_connect是在C++编程中创建和使用数据库连接以及进行数据库事务管理的类,主要方法有: (1)static int otl_initialize(const int threaded_mode=0); 该静态方法的主要功能是初始化OTL数据库环境,程序中第一次建立与数据库的连接之前,必须调用该方法一次,其后再建立与数据库的连接,就不需要调用该方法了。如果程序是在多线程环境下访问数据库,参数threaded_mode需置为1。另外在多线程环境下访问数据库,不要多个线程操作同一个otl_connect对象,除非该ot_connect对象有互斥锁机制。 (2) otl_connect(const char* connect_str,const int auto_commit=0); 连接数据库。参数同rlogon(),见(3)rlogon() (3) void rlogon(const char* connect_str,const int auto_commit=0); 该方法的主要功能是建立与数据库的连接。 参数connect_str是数据库连接配置字符串,有两种表达形式 o OTL4.0/OCIx ■”USER/PASSWORD”(本地数据库) ■”USER/PASSWORD@TNS_ALIAS”(远程数据库) o OTL4.0/ODBC和OTL4.0/DB2_CLI ■”USER/PASSWORD@DSN” ■”DSN=value;UID=value;PWD=value” 参数auto_commit设置数据库事务的提交模式,auto_commit设置为1,表示数 据库事务自动提交;auto_commit设置为0,表示数据库事务非自动提交,auto_commit 缺省为0。 (4) void logoff(void); 该方法的主要功能是断开与数据库的连接。 (5) void commit(void); 该方法的主要功能是提交数据库事务。 (6) void rollback(void); 该方法的主要功能是回滚数据库事务。 (7) void auto_commit_off(void); void auto_commit_on(void); 设置otl_connect对象的auto_commit标志 (8) long direct_exec(constchar *sqlstm, int ignore_error =otl_exception::enabled); 直接执行静态(无绑定变量)的SQL语句 ,该函数返回处理的行数。-1:处理异常;>=0:在执行INSERT、DELETE或UPDATE语句时,实际返回的是已处理行数 •otl_exception类 otl_exception类用于描述OTL操作数据时抛出的异常,有3个主要的成员变量: (1)unsignedchar msg[1000]; 该成员变量用于保存存异常的具体错误信息。 (2)char stm_text[2048]; 该成员变量用于保存导致发生异常错误的SQL语句。 (3)char var_info[256]; 该成员变量用于保存导致发生异常错误的输入/输出变量。 OTL使用起来也很简单,使用不同的数据库连接,主要是根据需要在程 序开始的宏定义来指定的。OTL是首先根据这个宏定义来初始化数据库 连接环境。OTL中用来区分连接方式的宏定义主要有下面这些: OTL_ORA7,OTL_ORA8, OTL_ODBC, OTL_DB2_CLI, OTL_ODBC_MYSQL... 不同的宏对应的数据库API,具体说明如下: 宏定义名 说明 OTL_ORA7 for OCI7 OTL_ORA8 for OCI8 OTL_ORA8I for OCI8i OTL_ORA9I for OCI9i. All code that compiles and works under #define OTL_ORA7, OTL_ORA8, and OTL_ORA8I, should work when OTL_ORA9I is used OTL_ORA10G for OCI10g. All code that compiles and works under #define OTL_ORA7, OTL_ORA8, OTL_ORA8I, OTL_ORA9I, should work with OTL_ORA10G. OTL_ORA10G_R2 for OCI10g, Release 2 (Oracle 10.2). All code that compiles and works under #define OTL_ORA7, OTL_ORA8, OTL_ORA8I, OTL_ORA9I, and OTL_ORA10G should work with OTL_ORA10G_R2 OTL_DB2_CLI for DB2 Call Level Interface (CLI) OTL_INFORMIX_CLI for Informix Call Level Interface for Unix (when OTL_ODBC_UNIX is enabled). OTL_IODBC_BSD for ODBC on BSD Unix, when iODBC package is used OTL_ODBC for ODBC OTL_ODBC_MYSQL for MyODBC/MySQL. The difference between OTL_ODBC_MYSQL and OTL_ODBC is that transactional ODBC function calls are turned off for OTL_ODBC_MYSQL, since MySQL does not have transactions OTL_ODBC_ POSTGRESQL for the PostgreSQL ODBC driver 3.5 (and higher) that are connected to PostgerSQL 7.4 / 8.0 (and higher) servers. OTL_ODBC_UNIX for ODBC bridges in Unix OTL_ODBC_zOS for ODBC on IBM zOS. OTL_ODBC_XTG_IBASE6 for Interbase 6.x via XTG Systems' ODBC driver. The reason for introducing this #define is that the ODBC driver is the only Open Source ODBC driver for Interbase. Other drivers, like Easysoft's ODBC for Interbase, are commercial products, and it beats the purpose of using Interbase, as an Open Source.database server. 绑定变量 •示例: INSERT INTO my_table (employee_id, supervisor_name)VALUES( :employee_id<int>, :supervisor_name<char[33]>) •placeholder(比如employee_id)可以用没有意义的f1代替,但是在一个SQL语句中不能使用相同名字的placeholder •在执行INSERT语句的时候,如果数据库中char字段的大小是n,则这个INSERT语句的绑定变量的大小要为n+1;否则当邦定变量的大小为n时,执行INSERT会出错。 •对数据库中定义的数字字段,可以根据字段的大小使用16位、32 位的整数和double类型;当然,如果对所有OCI的数字字段使用double,也不会出错。 •OTL的一般使用步骤包括: (1) 使用宏指明底层数据库API类型和控制编译器对OTL的编译。例如:#define OTL_ORA9I// Compile OTL 4.0/OCI9i (2) 创建otl_connect对象,该对象一般为全局共享的。 (3) 调用otl_connect的静态方法otl_initialize()初始化OTL环境。 (4) 调用otl_connect的rlogon()方法连接数据库。 (5) 创建otl_stream()对象,该对象一般为局部的。 (6) 使用otl_stream的<<操作符绑定SQL中的变量。 (7) 使用otl_stream的>>操作符读取返回结果。 (8) 调用otl_connect的logoff()方法从数据库断开。 代码 •SQL使用举例(常量SQL使用): 常量SQL就是不带任何绑定变量的SQL,OTL通过一个静态方法来操作: long otl_cursor::direct_exec(otl_connect&db,//OTL数据库对象 const char* sqltm,//SQL语句 otl_exception_disable=0,//OTL异常忽略标志 ); 返回值: ●-1,如果otl_exception_disable被设置成1,并且OTL的底层API发生错误 ●>=0,SQL执行成功,返回实际处理成功的记录数. o Examples(Oracle) 代码 输出: A=2,B=Test Stri ng1 A=3,B=Test String2 A=4,B=Test String3 常量PL/SQL块的使用与常量SQL的使用类似,在此不再赘述。

优秀的个人博客,低调大师

go Flag应用

仿nginx命令行 go语言些命令行程序是不错的选择,所以它可以轻松达到如上图类似nginx命令行的效果 例子 package main import ( "flag" "fmt" "os" ) // var ( h bool v,V bool t,T bool q *bool s string p string c string g string n int64 ) func init(){ flag.BoolVar(&h,"h",false,"this help") flag.BoolVar(&v,"v",false,"show version and exit") flag.BoolVar(&V,"V",false,"show version and configure options then exit") flag.BoolVar(&t,"t",false,"test configuration and exit") flag.BoolVar(&T,"T",false,"test configuration,dump it and exit") //另一中绑定方式 q = flag.Bool("q",false,"suppress non-error messages during configuration testing") //注意’signal‘,默认是 -S string 有了`signal`之后,变为-s signal flag.StringVar(&s,"s","","send `signal` to a master") flag.StringVar(&p,"p","/usr/local/nginx","set configuration `file`") flag.StringVar(&c,"c","conf/nginx.conf","set confiruration `file`") flag.StringVar(&g,"g","conf/nginx.conf","set global `directives` out of configuraton file") flag.Int64Var(&n,"n",0,"set `number`") //改变默认的usage flag.Usage=Usage } func main() { flag.Parse() if h { flag.Usage() } if len(s)!=0{ fmt.Println(s) } if n !=0{ fmt.Println(n) } } func Usage() { fmt.Fprintf(os.Stderr,`nginx version: nginx/1.10.0 Usage:nginx [-hvVtTq] [-n number] [-s signal] [-c filename] [-p prefix] [-g directives] Options: `) flag.PrintDefaults() } 先执行go build或go install 编译代码 执行FlagPrac -h 命令就可以输出帮助信息了 执行FlagPrac -s wang 执行FlagPrac -s wang Flag 概述 参考:标准库—命令行参数解析FLAG 两种定义Flag方式 Flag.Xxx() 其中Xxx可以是Int,String等;返回一个相应类型的指针,如: q = flag.Bool("q",false,"suppress non-error messages during configuration testing") Flag.XxxVar() 将flag绑定到一个变量上,如: flag.BoolVar(&h,"h",false,"this help") 另外还可以创建自定义flag,只要实现flag.Value接口即可 Flag解析 在所有的flag定义完成之后,可以通过调用flag.Prarse()进行解析,命令行flag的语法有如下三种方式: flag //只支持bool类型 flag=x flag x //只支持非bool类型 int类型可以是十进制、十六进制、八进制甚至是负数;bool类型可以是1, 0, t, f, true, false, TRUE, FALSE, True, False。Duration可以接受任何time.ParseDuration能解析的类型 类型和函数 ErrHelp:该错误类型用于当命令行指定了-help参数但没有定义时。 Usage:这是一个函数,用于输出所有定义了的命令行参数和帮助信息(usage message)。一般,当命令行参数解析出错时,该函数会被调用。我们可以指定自己的Usage函数,即:flag.Usage = func(){}

优秀的个人博客,低调大师

KVM实例应用

一、需求 公司近一台DELL T460机器回来,虚拟30台来跑hadoop集群测试的,虚拟化用的KVM技术,这当中第一次使用,在部署安装过程,入了不少坑。故把整个过程写下来。 二、部署步聚 1、所需要软件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@KVMqemu] #rpm-qa|grep-E'qemu|libvirt|virt' virt-what-1.11-1.2.el6.x86_64 libgovirt-0.3.2-1.el6_7.2.x86_64 libvirt-0.10.2-54.el6_7.6.x86_64 virt-viewer-2.0-7.el6.x86_64 libvirt-python-0.10.2-54.el6_7.6.x86_64 qemu-kvm-0.12.1.2-2.479.el6_7.4.x86_64 virt-manager-0.9.0-29.el6_7.1.x86_64 virt- top -1.0.4-3.15.el6.x86_64 python-virtinst-0.600.0-29.el6.noarch gpxe-roms-qemu-0.9.7-6.14.el6.noarch qemu-kvm-tools-0.12.1.2-2.479.el6_7.4.x86_64 libvirt-client-0.10.2-54.el6_7.6.x86_64 qemu-img-0.12.1.2-2.479.el6_7.4.x86_64 在KVM环境上,以上rpm包都是必需的。 2、安装图形化其他组件 1 2 3 4 5 6 #yumgroupinstall"Desktop""DesktopPlatform""DesktopPlatformDevelopment""Fonts""GeneralPurposeDesktop""GraphicalAdministrationTools""GrahicsCreationTools""InputMethods""XWindowSystem""ChineseSupport[zh]""InternetBrowser" #yuminstalllibvirt-client #yuminstallgpxe-roms-qemu-y #yuminstalllibvirt-pythonpython-virtinstqemu-kvm 3、安装桥工具并配置桥接网卡 1 yum install bridge-utils 1 2 3 4 5 6 7 8 9 10 root@KVM~] #cat/etc/sysconfig/network-scripts/ifcfg-br0 DEVICE= "br0" ONBOOT= "yes" NM_CONTROLLED=no BOOTPROTO= "static" TYPE= "Bridge" IPADDR=10.1.2.218 NETMASK=255.255.255.0 GATEWAY=10.1.2.254 DNS1=114.114.114.114 1 2 3 4 5 6 7 8 9 [root@KVM~] #cat/etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 HWADDR=14:18:77:54:2F:A4 TYPE=Ethernet UUID=9183c4ff-432c-4141-ae6a-74c40d58732d ONBOOT= yes NM_CONTROLLED=no BOOTPROTO=none BRIDGE=br0 3、安装VNC 1 2 #yuminstall-ytigervnc #yuminstall-ytigervnc-server 在这里注意了,安装tigervnc,那么用到pc连接过去时,自然也需要要安装tigervnc电脑版 配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@KVM~] #cat/etc/sysconfig/vncservers #TheVNCSERVERSvariableisalistofdisplay:userpairs. # #UncommentthelinesbelowtostartaVNCserverondisplay:2 #asmy'myusername'(adjustthistoyourown).Youwillalso #needtosetaVNCpassword;run'manvncpasswd'toseehow #todothat. # #DONOTRUNTHISSERVICEifyourlocalareanetworkis #untrusted!ForasecurewayofusingVNC,seethisURL: #https://access.redhat.com/knowledge/solutions/7027 #Use"-nolistentcp"topreventXconnectionstoyourVNCserverviaTCP. #Use"-localhost"topreventremoteVNCclientsconnectingexceptwhen #doingsothroughasecuretunnel.Seethe"-via"optioninthe #`manvncviewer'manualpage. #VNCSERVERS="2:myusername" #VNCSERVERARGS[2]="-geometry800x600-nolistentcp-localhost" VNCSERVERS= "1:root" VNCSERVERARGS[1]= "-geometry800x600-depth32" 4、创建磁盘 1 qemu-imgcreate-fqcow2-osize=200G,preallocation= "metadata" /data1/hadoop/images/kvmhadoop222.qcow2 5、使用virt-install创建虚拟机并安装GuestOS 1 virt- install --virt- type kvm--namekvmhadoop222-- ram 16384--cdrom= /root/CentOS-6 .7-x86_64-LiveDVD.iso--diskpath= /data1/hadoop/hadoop2/kvmhadoop202 .qcow2--graphicsvnc,listen=0.0.0.0,port=5903--noautoconsole--os- type =linux--os-variant=rhel6--networkbridge=br0,model=virtio 6、用vnc连接 7、接下来就是安装操作系统了(省略) 注意了,安装完操作系统,然后关闭再重启启动 1 virshdestroykvmhadoop222 1 virshstartkvmhadoop222 8、虚拟机列表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@KVM~] #virshlist IdNameState ---------------------------------------------------- 19kvmhadoop223running 21kvmhadoop228running 22kvmhadoop229running 23kvmhadoop230running 24kvmhadoop231running 25kvmhadoop232running 30kvmhadoop221running 31kvmhadoop222running 36kvmhadoop233running 37kvmhadoop234running 38kvmhadoop235running 39kvmhadoop236running 40kvmhadoop224running 9、修改端口号,到配置文件 1 2 3 4 5 [root@KVMqemu] #pwd /etc/libvirt/qemu [root@KVMqemu] #ls kvmhadoop202.xml.bakkvmhadoop222.xmlkvmhadoop223.xmlkvmhadoop228.xmlkvmhadoop230.xmlkvmhadoop232.xmlkvmhadoop234.xmlkvmhadoop236.xml kvmhadoop221.xmlkvmhadoop222.xml.bakkvmhadoop224.xmlkvmhadoop229.xmlkvmhadoop231.xmlkvmhadoop233.xmlkvmhadoop235.xmlnetworks 10、修改端口,记得从XML配置文件定义一个domian,相当于注册一个domain但是不启动。 1 #virshdefine/etc/libvirt/qemu/kvmhadoop222.xml 11、然后就是启动了 12、宿主机开机自动启动虚拟机设置 1 2 3 4 5 6 7 8 9 10 #/bin/bash #Program #Automaticvirtualmachinecommand #History #2016/04/1qingyunfirstrelease Array=(222223224228229230231232233234235236) for i in ${Array[@]} do virshautostartkvmhadoop$i done 13、开机启动虚拟机脚本 1 2 3 4 5 6 7 8 9 10 #/bin/bash #Program #Automaticvirtualmachinecommand #History #2016/04/1qingyunfirstrelease Array=(222223224228229230231232233234235236) for i in ${Array[@]} do virshstartkvmhadoop$i done 本文转自 zouqingyun 51CTO博客,原文链接:http://blog.51cto.com/zouqingyun/1758928,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册