10 个优秀的占位图片生成服务

placehold.it A quick and simple image placeholder service. 特点:老牌服务,支持 HTTPS 可定制:尺寸、颜色、文字、格式 http://placehold.it/300x200http://placehold.it/300x200/09f/fff.pnghttp://placehold.it/300&text=worldhttp://placehold.it/300x200/ff9900/fff.png?text=hello lorempixel Placeholder Images for every case. Webdesign or Print. Just put a custom url in your html and you receive a proper placeholder picture 特点:图片分类丰富 可定制:尺寸、图片分类、文字、灰度图 http://lorempixel.com/300/200http://lorempixel.com/300/200/sportshttp://lorempixel.com/300/200/sports/C7SKY-COM Fake images please? Fakeimg.pl is a little tool that generates images with an URL. Choose the size, the colors, even the text. Oh… and it’s free. 特点:可指定字体 可定制:尺寸、颜色、文字、字体 http://fakeimg.pl/300x200http://fakeimg.pl/300x200/333/EEE/http://fakeimg.pl/300/?text=C7SKY.COM&font=lobster {placekitten} A quick and simple service for getting pictures of kittens for use as placeholders in your designs or code.

c++定义数组

参考博客:https://blog.csdn.net/sinat_34166518/article/details/84898086 1、静态内存分配: 定义数组的时候,必须指定数组的大小为常量或者常数 如: (1)第一种:int array[10]; // array[i]的值不定,没有初始化 (2)第二种:const int Size=10; int array[Size]; (3)第三种:用指针的方式, int* value = new int[n]; // 未初始化 delete []value;(注意第四种方式,需要将内存进行手动删除) 2、 动态分配内存: //定义 int arraysize; //元素个数 cout<<"请输入数组的大小:"; cin>>arraysize; int *array;//指针指向数组 array=new int[arraysize]; //动态内存分配 //释放 delete []array;

Java全栈工程师知识体系介绍

Java全栈工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。** 那么想要成为一名合格的Java全栈工程师需要掌握哪些知识呢? 今天就在这里总结一下知识体系: 1、首先Java全栈工程师首先必须精通Java,那么作为一个零基础的人,要想成为Java全栈工程师第一步就是学好JavaSE(标准版),它是Java的标准版,是整个Java的基础和核心,也是JavaEE和JavaME技术的基础,主要用于开发桌面应用程序。 2、学习完JavaSE后,我们一般会学习JavaEE(企业版),它提供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是Java技术应用最广泛的领域。也有极少部分人学习JavaME(微版),是一个技术和规范的集合,它为移动设备提供了Java环境的开发与应用平台。是用来做手机软件的。 3、在学习JavaEE前呢,我们需要学习一些前端和数据库的知识。其中前端知识主要包括HTML,CSS,JavaScript,JQuery,Ajax,EasyUI,bootstrap等等。数据库知识呢,市场上主要流行的就是oracle和mySQL两种数据库,当然也包含其他,我主要学习了这两种。 4、在这期间,穿插学习了TCP,UDP协议,http协议,XML等知识,也是学习前端知识的一些重要知识点。 5、学完这些前端知识和数据库后我们开始了正式的JavaEE知识的学习。Java EE平台构建于Java SE平台之上,提供一组API和运行环境来开发和运行大规模的,多层的,可扩展的,可靠的和安全的网络应用程序。JavaEE的核心知识Sevelet和JSP。 6、我们学习完JavaEE后,能够开发一些Web应用程序了,但是还远远不够。我们还要学习一些框架(这里学习五个流行的框架),来让我们更加快速的,高效的开发。Mybatis,Hibernate这两种框架是两个ORM(对象关系映射)持久层框架,mybatis是半自动的,需要自己写sql语句。hibernate是全自动的,不需要自己写sql语句。Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,简化了开发的复杂性。Structs2和SpringMVC是两个MVC框架,主要职责就是从前台接受数据,经过处理后,返回给前台展示数据。 7、框架学习后,我们能够更加快速,高效的开发Web应用,但是还不够,我们需要学习更多的知识来适应更多的需求,比如:Linux,Maven,Redis,Dubbo,Solr,Hadoop,Spark等等。 8、完成这些主要知识的学习后,如果是零基础的学习者,我们应该继续扩展新的知识:设计模式,JVM虚拟机运行原理,数据结构与算法,网络协议,计算机组成基础等等。 最后,我想引用一位老师的一句话:计算机编程行业是终生学习的行业!所以说,如果您还在考虑进来,请好好考虑,如果开始从事这个行业,请一步一个脚印,认真学下去,相信我们都会成为心目中的技术大牛!!!加油!!!

CSGO控制台与常用指令

这篇文章我会详细的介绍CSGO控制台、指令系统、设置方面的知识,有点晦涩,希望各位能在阅读的过程中时不时昏睡过去( ͡° ͜ʖ ͡°)。 控制台 V社(Valve)的Source起源引擎制作的游戏都可以开发者控制台,简称控制台console,使用控制台可以实现很多游戏的设置面板无法提供的功能,比如跳投、切换准星参数、颜色等等特殊功能都是利用了控制台的指令实现的,这也是CS游戏的一大特色了。 开启控制台 在游戏的设置菜单里,游戏设置-游戏-启用开发者控制台选是即可启用控制台,之后按下~即可开关控制台并使用各种指令。开启控制台的指令是con_enable 1,看起来是个悖论,等到说CFG时就知道它的用处了。 多个控制台指令 当同时需要在控制台使用多个指令时,务必使用分号;分隔各个指令。 控制台提示 指令输入的过程中控制台会给出提示,大多数情况都会有下拉菜单提示各种指令,可以使用↑↓在下拉菜单中切换,使用Tab键也可以自动填入下拉菜单的第一个指令,比如: 显示各种网络参数的指令net_graph 1,输入至net_时下方第一条指令就是net_graph,直接按下Tab和1即可快速输入这条完整的指令。 退出游戏的指令quit,原理同上,输入q→Tab→回车,即可实现光速quit(真实)。 不要小看提示,他可以很大程度上纠正拼写问题,有时使用指令/CFG的时候可以试着手动输一遍,过程中提示消失很可能是拼写有误;同样,如果使用hlae录制集锦,输入mirv发现没有提示极可能没有正确的使用hlae启动csgo。(不是hale!!) 常用控制台指令 账号登录相关 quit 快速退出游戏,使用心态爆炸,光速quit exit 同上,不过没有那么有名 disconnect 退出服务器到主界面 retry 重连最近一次加入的房间,比如从休闲、死斗退出之后还想回到刚才的房间可以使用,前提是中途没有重开游戏;5e、b5等平台也可以使用快速重连服务器(小退),重启游戏是大退。 常用指令 net_graph 1 显示网络参数:ping/var/choke等,0为关闭。 net_graphpos 1 网络参数的水平位置:1=右 2=中 3=左。 fps_max 300 设置最大帧数为300,一般会根据当前的帧数表现动态调整,尽可能让FPS波动不超过60以获得较好的观感体验。 volume 1 主音量大小,0为静音 sensitivity 0.9 鼠标灵敏度 map dust2 进入本地离线服务器并加载dust2地图,地图名不必完全一致,如荒漠迷城可以用map mir。 mat_monitorgamma 2.2 亮度,越小越亮[1.6~2.6] mat_monitorgamma_tv_enabled “0” 显示模式[1.电视 0.电脑屏幕] buy awp 购买武器指令,即购买awp give weapon_ak47 获得ak47,常用于跑图 +right 视角右移,输入-right取消 +moveright 相当于按下D键,-moveright取消,和+right组成挂机防踢指令 cl_相关参数 cl_开头的指令往往和HUD有关,比如雷达、血条、菜单等用于提示玩家的信息。 cl_autowepswitch 0 关闭自动换上捡起的武器:珍爱生命,远离自动换枪

curl_easy_setopt的基本选项解析

CURLcodecurl_easy_setopt(CURL *handle, CURLoption option, parameter); 网络选项(NETWORK OPTIONS): 1. CURLOPT_URL 这个选项后面接实际要放访问Http服务器的URL地址 ,这个 URL 是一个以 '\0' 结尾的字符串; 2. CURLOPT_POSTFIELDSIZE 该选项是指向一个向 HTTP 服务器 POST 出去的一段数据的长度,指明CURLOPT_POSTFIELD数据内容的长度,如果CURLOPT_POSTFIELD数据内含有\0字符结束符,curl就会停止读取\0字符后面的数据。造成数据没有完全Post给服务器; 3. CURLOPT_WRITEFUNCTION 使用该选项时,要求第 3 个参数中的回调函数必须是下面的函数原型: size_t function( char *ptr, size_t size, size_t nmemb, void *userdata); 在启动会话时,一旦检测到有需要接收的数据时,回调函数被调用。ptr 所指向的数据大小由 size 和 nmemb 的乘积获得。函数最后需要返回接收数据的大小。如果不使用该函数,那么接收到的数据会直接打印到终端;使用该函数,那么接收到的数据保存在 ptr 所执向的区域,可以利用此来保存接收下来的数据。 4. CURLOPT_USERAGENT 该选项要求传递一个以 '\0' 结尾的字符串指针,这个字符串用来在向服务器请求时发送 HTTP 头部中的 User-Agent 信息,有些服务器是需要检测这个信息的,如果没有设置 User-Agent,那么服务器拒绝请求。设置后,可以骗过服务器对此的检查。 5. CURLOPT_WRITEDATA 使用该选项时,第 3 个参数作为用户数据的指针而传递到使用 CURLOPT_WRITEFUNCTION 选项时指定的回调函数中(第 4 个参数)。如果不想用回调函数而保存数据,那么可以使用 CURLOPT_WRITEDATA 选项,使用该选项时,函数的第 3 个参数必须是个 FILE 指针,函数会将接收到的数据自动的写到这个 FILE 指针所指向的文件流中。

【cocos creator】ScrollView + RichText实现可滑动的富文本显示自定义组件

ScrollView + RichText实现可滑动的富文本显示自定义组件 通过将ScrollView滑动视图组件和RichText富文本组件组合,同时实现文字自动滑动的效果。 为适应和实现多种不同的显示效果,我设计组件的节点树为 ContentDisplay ├──Background ├──Foreground │ ├──TextContent ContentDisPlay节点作为整个组件的根节点,并挂载脚本实现组件的功能。 Background节点作为整个组件的背景节点,可为富文本显示添加背景,例如背景图,或做成遮罩层。 Foreground表示整个富文本显示的区域。其中TextContent同时挂载了RichText和ScrollView组件。 上图中蓝色框为Background,灰色框为Foreground。 接下来是重点,通过脚本控制RichText的滑动。我将脚本分为三个文件,分别挂载到ContentDisplay根节点和Background,Foreground节点上。 此处主要实现了前景的富文本滑动,实际上Background未包含脚本。计划后面再加上对背景的个性控制。这里只写了ContentDisplay和Foreground脚本。 ContentDisplay 脚本,两个子节点作为成员变量。在其他地方通过此对象的此成员变量引用和调用。 //ContentDisplay 脚本,两个子节点作为成员变量。在其他地方通过此对象的此成员变量引用和调用。 //import import foreground from "./foreground" import background from "./background" const {ccclass, property} = cc._decorator; /** * contextDisplay is a custom component to show some rich text. * It's include a background view layer and foreground view layer. * the background layer to do some thing like mask work * the foreground layer is for show rich text */ @ccclass export default class contentDisplay extends cc.

误删注册表exe,所有exe程序无法运行

1、在桌面空白处鼠标右击选择“新建-文本文档”,然后将下面的代码复制粘贴进去: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.exe] @="exefile" "Content Type"="application/x-msdownload" [HKEY_CLASSES_ROOT\.exe\PersistentHandler] @="{098f2470-bae0-11cd-b579-08002b30bfeb}" 然后将后缀名改为.reg ,双击运行; 2、在桌面空白处鼠标右击选择“新建-文本文档”,然后将下面的代码复制粘贴进去: assoc.exe=exefile 然后后缀名改为.bat或者.cmd,双击运行; 3、重启电脑

springboot添加文件虚拟路径(指定本地磁盘存放附件)

所有开发项目中,把附件存放于项目目录下,日后运维工作简直要人命. 所以使用虚拟路径就能很好的解决本问题: import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * 新增静态资源路径,与默认不冲突,解决图片需要虚拟路径问题 * @author chencf * */ @Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter { //注意!!!配置磁盘路径在启动时必须创建文件夹,如D盘下必须有imag文件夹下.否则启动会报错. @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { /*addResourceHandler("/imag/**")指定访问路径, *比如系统访问地址为localhost:8088,那我们请求路径为localhost:8088/imag/test.img *addResourceLocations("file:D:/imag/")指定本地磁盘路径(可设置挂载磁盘或局域网共享磁盘) *本次示例中D:/imag/test.img */ registry.addResourceHandler("/imag/**").addResourceLocations("file:D:/imag/"); super.addResourceHandlers(registry); } }

学JDBC,这一篇就够了

目录 第一章:JDBC入门 3.1.1 什么是 JDBC 使用 JDBC 的好处: 3.1.2 使用 JDBC 开发使用到的包: 3.2 JDBC 的核心 API 3.3 导入驱动 Jar 包 3.4 加载和注册驱动 第二章:DriverManager类 2.1 DriverManager 作用: 2.2 类中的方法: 2.3 使用 JDBC 连接数据库的四个参数: 2.4 连接数据库的 URL 地址格式: 协议名:子协议://服务器名或 IP 地址:端口号/数据库名?参数=参数值 2.5 案例:得到 MySQL 的数据库连接对象 第三章:Conection接口 3.1 Connection 作用: 3.2 Connection 方法: 第四章:Statement接口 4.1 JDBC 访问数据库的步骤 4.2 Statement 作用: 4.3 Statement 中的方法: 4.4 释放资源 4.5 执行 DDL 操作 4.6 执行 DML 操作

使用git遇到的问题,待解决。

用git 上传代码时,遇到了这样的问题,还没有找到解决方法,先将问题发上来。 提示信息如下: git.exe push --progress "origin" master To https://git.dev.tencent.com/xiawenyou/GpsExchange.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://git.dev.tencent.com/xiawenyou/GpsExchange.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. git did not exit cleanly (exit code 1) (384324 ms @ 2019/7/9 13:29:49) 如果你知道怎么解决,请告知,十分感谢。

初入IT行业的心酸+面试心路历程

我相信一定有这么一批刚入行的同学都曾经怀疑过自己到底适不适合做IT这一行。一边给自己打鸡血,一边在挫折中一遍一遍的否定自己。然而对于刚入行的朋友们,今天我想和你说点什么。 大学状态 本人大学学的是信息管理与信息系统。这个专业就很尴尬,它不仅要学习管理学的东西还要学习计算机专业的知识,但是学的都很浅。我当时也是因为调剂才选到这个专业的,说到高考时,一把辛酸泪,这里省略一万字。大一的时候还是比较认真的。高数英语也都能考到90多分,然后裸考把英语四级过了。大一能参加四级的并不多必须期末考试英语90分以上的才可以参加。到了大二专业课开始来了,首先C语言。一开始就让我云里雾里的一门学科。因为我是真的不喜欢计算机这个玩意,甚至是极其讨厌。我在没上大学之前只去过一次网吧,还是去找人。从小就对网络游戏不感兴趣的我也一点不喜欢任何与计算机有关的事。因此我真的没想过我现在竟然坐在办公司里撸着一行行的代码。并靠着这个行业养活自己,现实就是这么不可思议。不要把自己框的太死,因为有可能你更本不属于这个框子,你有框子外的更多精彩。 因为知道自己不可能走IT的道路所以专业课我基本没听过。甚至我连用电脑打字都不熟练。就这样我在班级里被认为是专业课成绩最差的那一批学生。其实中间也有挣扎过想要好好学习,但是计算机二级考了三次,嗯,没过。然后放弃。为什么这么说呢,因为我英语六级没准备了两三个星期过了,而计算机二级天天泡在图书馆还是没过。我就给自己贴上了我不适合计算机这个行业的标签,然后我就自欺欺人,心安理得的学我的吉他,睡我的觉。就这么浑浑噩噩的到了大三。大学我是睡神。 入行前景 大三下学期,一下面临着实习的到来。开始慌张了,也不弹吉他了,也睡不着觉了。真的要面临工作了啊。学校和各个培训机构合作,希望能将我们这里的学生弄到他们的培训机构去培训。但是学校对我们班级的学生的定位是前端。因为我们的计算机知识相对比较薄弱。而前段先对简单,培训机构会先免费给我们上两个月的课程。然后再给我们洗脑,进入培训机构。就是这两个月,彻底改变了我的职业想法。之前不喜欢计算机,所以就从心里上排斥了它,没有真正用心去学习他。现在逼了一把不得不学习他的时候我会发现,其实他没我想象中的那么难。(事实证明了人就是应该要被逼一把)。我们这两个月学的是前端,从0开始。我一点一点的在进步,那个时候就是很夸张,每天晚上睡觉做梦都是在调像素。不过确实很充实。当我在JS考核时考了全班第一的时候,我们班很多人都很诧异。也越来越多的人开始来问我问题了,我发现我并不是想以前那样去问别人问题了。我开始可以为别人解答问题了。这两个月把前端的一些基础学到了。也能做出一些很好看的静态网站了。算是入门了。然后通过各种途径了解到了python。经过各种思想斗争,一个人来到了上海,参加了上海的一所知名培训机构培训了python,培训的六个月里确实付出了很多,毕竟自己的基础太薄弱了。说到这里我想对那些还在纠结要不要走向这条路的人说两句。如果你害怕不敢前行,你注定会保持原地。勇敢迈出一步,可能会有意外收获。我以前觉得我对计算机不感兴趣,我不想走这条路。可是我反过来想你真的能找到你感兴趣的工作吗?你能保证你能把其他的行业做好吗?没有好的态度好的方法,其实你是做什么都不行的。计算机你学不好,三心二意。你以为你做其他的你就能做好,其实其他的事情一样你也做不好。虽然我水平也还没那么高。但是我还在努力中。我相信态度是成功的很大因素。我一直都是一个很笨的人,但是我不能失去我的优势----努力和认真。 面试心路 我面试的时候我还没毕业,也就是去年的时候。当时刚过完年,也是很冷的一个天气。当时在纠结到底是面试实习生还是包装简历拿高点工资。因为对自己还算有自信所以我就谎称自己是两年工作经验的(这里不是太推荐大家这么做),也是初生牛犊不怕虎。一个星期之后拿到了三家offer,其中一家公司规模很大,背调很严格。被刷了,还有一家分别是13K和12K,我选择了13k的那家,虽然背调了,但是还是要了我。可能是运气吧。但是好景不长。13k的工资也不是那么好拿的。虽然我是参加培训出来的,但是毕竟没有任何的项目经验,那家进去就是我一个人负责那一块的。从数据库的设计到数据的抓取,到与前后端的合作等等工作的第一个星期真的是心力憔悴。为了生活,跌跌撞撞的熬了过来那段时间真的是人生中最累的一个阶段。中间有过无数次的想要辞职的念头,但是想想在上海这座这么难以生存的城市中还是无论如何要坚持下来。最终也是熬了过来,技术上也是提升了很多。付出总是有回报的。也给每一位即将走向这条道路的朋友们说下,努力一定会有收获。上家公司由于倒闭,所以今年我以真实的情况面试了,今年互联网寒冬,所以工作确实不好找。好在功夫不负有心人,我成功的进入了现在这家企业,虽然是打酱油的角色,但是我相信未来是一片光明。只要不死,努力干就是了。 总结 说了这么多,其实就是想要表达的是,我一个这么笨的人,这么不爱计算机行业的人都已经入门了,那些想要进来的人还在犹豫什么呢?那些刚入门和我一样快要放弃的人还在迷茫,浪费时间吗?赶快行动起来。还是那句话什么行业都一样只要努力就会有你的一席之地。不要眼高手低。世上没那么多大牛。我们做好自己该做的我们就是大牛。

autojs安卓免root脚本代码UI选择文件源码

说明 本文提供的代码仅供参考。不建议用于生产环境。 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。 Auto.js简介 Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。 与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。 Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。 推荐教程 Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p) 开发文档 Auto.js Pro开发文档 文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。 为什么要使用Auto.js Pro开发脚本,有什么特点? 吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是: Auto.js Pro能开发免ROOT的安卓脚本Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面Auto.js Pro使用的javascript的语法比较优雅,代码可读性强Auto.js Pro的命令库非常的丰富,接口比较多Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告 示例代码 //此代码由飞云脚本圈整理提供(www.feiyunjs.com) "ui"; importPackage(org.autojs.autojs.ui.explorer); importPackage(org.autojs.autojs.model.explorer); var explorerView = new ExplorerView(new android.view.ContextThemeWrapper(context, org.autojs.autojs.R.style.AppTheme)); explorerView.setExplorer(Explorers.workspace(), ExplorerDirPage.createRoot("/sdcard")); //explorerView.setDirectorySpanSize(2); explorerView.setOnItemOperatedListener(function(file) { toastLog(arguments); //ui.finish(); }); explorerView.setOnItemClickListener(function(view, item) { toastLog(item.toScriptFile()); //org.autojs.autojs.model.script.Scripts.run(item.toScriptFile()) }); ui.setContentView(explorerView);

模仿QQ登录头像的切换

模仿QQ登录头像的切换 开发工具与关键技术:SQL Server 2014 Management Studio 如何切换登录的头像 作者:李国旭 撰写时间:2019年7月6日 我们平时如果注意的话会发现QQ登录的头像会随着我们的帐号的切换而切换,还有就是微信的登陆也是这样都会随着我们的账号的变化而变化;就觉得很神奇,那么他是怎样实现这样的登录的效果的呢?我们一起来看一下它的神奇之处! 就用我现在做的这个项目为例:首先,就要把它员工或者是管理员的账号、密码通过新增进数据库中,把账号和密码一起保存在数据库中。注意:密码不能用明文保存在数据库,一定要加密后再保存进数据库里,要不然明文的密码和容易给别人窃取,而且这样做很危险,所以一定要进行加密后再保存到数据库中。 那么先判断我们的输入账号显示用户的头像,获取它账号的值,判断它的账号不等于空;然后For…in…循环i++,从控制器那边获取到账号的值,拼接账号加上它的参数来传参,然后再new一个时间;然后就是把图片show出来,否则就是hide隐藏起来,如下图所示: 当然啦,我们也要在控制器那边判断我们选择的角色的类型对不对,,对用户输入的密码加密,然后再判断加密后的密码和数据库中的密码比较,之后就是验证选择的角色是否正确,把用户的数据放入session中,获取用户类型的名称和ID 最后就是设置session,传递用户ID和用户类型的ID 下面的就是判断它的用户的角色类型的选择是否正确的代码 //对用户输入的密码加密 string PassWord = AESEncryptHelper.Encrypt(strPassWord); //用加密后的密码和数据库查询到的密码比较 if (PassWord == dbUser.PassWord) { //==验证选择的角色是否正确 var listUserType = (from tbUser in myModels.S_User join tbUserRoleDetail in myModels.S_UserRoleDetail on tbUser.UserID equals tbUserRoleDetail.UserID join tbUserType in myModels.S_UserType on tbUserRoleDetail.UserTypeID equals tbUserType.UserTypeID join tbemployee in myModels.S_Employee on tbUser.UserID equals tbemployee.UserID where tbUser.UserID == dbUser.UserID && tbUserType.typeClass == strUserType.Trim() select new { tbUserType.

把数据导出到Excel

把数据导出到Excel 开发工具与关键技术:SQL Server 2014 Management Studio 导出到Excel 作者:李国旭 撰写时间:2019年7月6日 如何把表格中的数据到出到Excel表格中去呢?那么前提是我们要先把数据查询出来,再对我们的Excel的表格需要以什么的样式可以自己写上去,和我们之前的导出到Excel的方法都是一样的。下面我们一起来看一下具体的操作。 第一, 先获取查询的条件和他们的条件的值,这里如果把ID的值写错的话可能会导致我们为您导出的数据出不来,所以我们在写他们的ID一定不要写错了,“ID是唯一的” ,我们的名字可以是多个的,但是呢名字一样的话有时候会分不清那个跟那个;所以为了区分他们我就把名字写成不一样的。 第二, 判断他们的ID等于空或者是等于underfined那么他们的ID就等于零,我们通常都是这样来判断他们的ID的。 最后,就是拼接他们的ID值和传参数。这里window.open打开的是新的窗口,紧接着就是他的路径后面跟的是它的参数和一些ID的值;这里也是一样ID不能传错,传错了的话也会导出不成功的,所以我们写代码的时候就要谨慎不能马虎。 控制器那边的就是说,比如我们要把某个表导出到Excel它呢跟我们写查询的时候是一样的。 接着它的步骤流程如下:1、创建工作簿;2、创建工作表;3、设计表头;4、创建表头;5、将Excel文件转化为文件流输出和将workbook写入内存流;6、确定流的开始位置;7、为导出的Excel命名。下面的就是代码,在做之前呢要先引用“IO”这个文件 //1、创建工作簿 HSSFWorkbook exBook = new HSSFWorkbook(); //2、创建工作表 ISheet sheet = exBook.CreateSheet("天津睿兴部门信息"); //3、设计表头 //3.1、创建表头 IRow headRow = sheet.CreateRow(0); //3.2设计表头字段 headRow.CreateCell(0).SetCellValue("部门名称"); headRow.CreateCell(1).SetCellValue("部门联系电话"); headRow.CreateCell(2).SetCellValue("部门内部联系电话"); headRow.CreateCell(3).SetCellValue("部门领导"); headRow.CreateCell(4).SetCellValue("部门职责"); headRow.CreateCell(5).SetCellValue("部门编号"); headRow.CreateCell(6).SetCellValue("部门描述"); headRow.CreateCell(7).SetCellValue("所属组织"); 然后For…in…循环;i++,创建行“IRow rowTemp = sheet.CreateRow(i + 1);”;在写入我们需要导出的表格数据 //5、内存流。将Excel文件转化为文件流输出 MemoryStream exStream = new MemoryStream(); //将workbook写入内存流 exBook.Write(exStream); //6、输出之前调用Seek(偏移量,游标位置)方法:确定流开始的位置 exStream.Seek(0, SeekOrigin.Begin); //7、为下载的Excel导出文件命名 string exFileName = "天津睿兴部门信息表" + DateTime.Now.ToString("yyyyMMddHHmmss") + "

Angularjs 自定义指令directive详解

一、自定义指令; 1. var app = angular.module('app',[]); 2. app.directive('directive1',['$scope',function($scope){ return { restrict:'ECAM', // 限制,表示指令以什么形式写进页面 scope:{ // 有了这个属性,自动创建独立作用域 &(传递外部的函数) @(单项绑定,只能读取外部传进来的指,且需是字符) =(双向绑定,外部的值传进来也会随着指令里的操作而改变) } template:'<div>111111 <div ng-transclude></div> </div>'; // 模板,指令放在页面之后显示的内容,如果内容过多,建议使用外部文件,写法如下; templateUrl:'../template/index.html'; // 使用外部模板,内容过多的情况下使用。 replace:true, // 是否替换页面中指令里的内容,如果有这个属性,模板的外层必须要套一个标签 transclude:true,//这个属性为true,那么就可以将页面中指令里的内容保留下来,需要在指令的模板里添加一个标签使用ng-transclude,使用方法见template属性; priority:10,// 指令执行的优先级,一般不会遇到,也不会用到,了解就行 terminal:true, // 指令的权重,如果为true,那么优先级小于10的指令都不会执行,了解就行 require:'parantController', // 指向其他指令,指令间的通信,可以将其他指令传递给自己 compile:function(element,attr,transclude){ // 与link相同,二者选其一; console.log(element); // 当前元素 console.log(element); // 当前指令的所有属性 transclude这个参数是如果指令用了这个属性,那么这个参数就代表了页面指令里的内容 }, link:function(scope,element,attr,parantController){ // 与compile相同,二者选其一; scope就是$scope对象 element为当前元素 attr为指令的所有属性 当有require属性时,parantController其他指令的controller,与require配合 console.log(parantController.xxx); // 外面指令的this.xxx或当前controller设定的this.xxx 当前controller中定义的$scope.xxx也可以在这里使用 }, controller:function($scope, $element, $attrs){ 这里面的参数其实就是link里面的参数,只是代码规范,操作元素的写进link,操作逻辑的写进controller }, controllerAs:'tempController', // 给controller起的别名,link的第四个参数也可以用这个,指向的就是当前controller } }]) 补充:(1) templateUrl还可以使用script模板来带入,例如: <script type='text/ng-template' id='template1'> <div>这里是模板的内容</div> </script> 那么就可以写成:templateUrl:'template1'; //这里要注意,如果使用script模板必须要给id (2)require:'^aaa', 1.

Flex RichClient Solution by MacroMedia

Check the samples! http://www.macromedia.com/devnet/flex/example_apps.html# really cool, and the most important, it only requires the browser can play flash. 转载于:https://www.cnblogs.com/jonnyyu/archive/2004/04/04/5119.html

Python配置管理的几种方式

一、 为什么要使用配置 如果我们在较复杂的项目中不使用配置文件,我们可能会面临下面的情况: 你决定更改你的项目中数据库的 host, 因为你要将项目从测试环境转移到实际的上产环境中。如果你的项目中多个位置用到了这个 host,那你不得不一个一个找到这些位置再修改成新的 host。花了半天,然后过了一天,你发现项目在生产环境有些问题,需要重新移回测试环境,你得再次修改,这样工作很繁琐很不优雅。你开发了一个很棒的开源项目,你想将其放到版本控制系统例如github上,但是你服务器的主机的地址、账号、密码也都上传上去了,但是你没有意识到,直到有个 bad guy 拿到了你的信息,从你的服务器窃取信息、攻击你的服务器,让你产生了极大的损失。然后你想把程序改动一下,把涉密的信息比如地址密码都删掉,可是由于版本控制的原因,别人依然能看到你以前版本的代码。于是你不得不改掉你的账户、密码等,真的是个悲伤的开源项目经历。 但是,如果你使用了配置管理呢,那会有以下几个优点: 这样就提高了代码的重用性,不再每次都去修改代码内部这意味着其他不太懂你代码内部的人也可以使用你的项目,只用根据需求更改配置即可有利于团队协作有利于安全数据/秘密数据的管理 二、Python 中进行配置管理的几种方式 由于使用 Python 较多,因此基于 Python 进行配置管理的相关说明,当然其他语言也都是大同小异,主要思想还是不变。 2.1 使用 Python 内置的数据结构(如字典) 2.1.1单个文件下的单个配置 我们很自然就能想到这一点,例如以下代码: # main.py import pymysql DATABASE_CONFIG = { 'host':'localhost', 'dbname':'db', 'user':'user', 'password':'pwd', 'port':3306 } def connect_db_do_something1(dbname): if dbname != config.DATABASE_CONFIG['dbname']: raise ValueError("Couldn't not find DB with given name") conn = pymysql.connect(host=config.DATABASE_CONFIG['host'], user=config.DATABASE_CONFIG['user'], password=config.DATABASE_CONFIG['password'], db=config.DATABASE_CONFIG['dbname']) ''' do something 1 ''' def connect_db_do_something2(dbname): if dbname != config.