首页 文章 精选 留言 我的

精选列表

搜索[快速入门],共10000篇文章
优秀的个人博客,低调大师

C# .NET 可灵活配置登录窗体、主窗体的快速信息管理系统开发架构参考

周日改进了通用权限管理系统一天,终于可以拿出有完整的SDI,MDI方式的主窗体例子了。MDI方式主窗体的改进功能点主要有如下: 1:这里一次性获取用户的菜单权限,双击后会打开相应的菜单。2:用了递归技术加载了菜单,而且可以动态调用不同包里的窗体。3:这里是与网页实现单点登录功能的简单例子。4:这是点那妞呼叫一次窗体的功能,而且实现了避免重复打开相同的页面功能。5:子窗体的排序动作,可以影响母窗体的快捷按钮。6:通过母窗体上的快捷按钮操控制子窗体的事件。 登录窗体、主窗体都可以在配置文件里指定,可以自由定义登录窗体及主窗体,代码可参考的意义及代码重复利用的价值远比这个程序本身的意义更重大。 本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1201481,如需转载请自行联系原作者

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

BI团队如何高效应对快速扩张的公司的需求 —— 阿里云MVP赵玮主题分享【2】

上一篇提到,作为数据分析的从业者,在这个公司发展过程当中,给他们的建议。 根据提到BI同学两个层次: 第一:我们会接受业务方哪些需求帮他实现需求; 第二:我希望我们这边团队有更多的主动性; 给大家举两个例子,我们在公司的发展过程当中,会把一些成型的东西沉淀下来。 第一个例子:节假日 当时公司的商户有一定规模之后碰到的第一个节假日, 节假日的时候交易会有一定的下降,这是很正常的。 因为线下支付的场景,有些人假期的时候在家里。 有一些这种商圈,上班期间,有很多这种白领用餐,放假了,有一些人节假日出国旅游了等等。 但是节假日回来之后, 什么时候我的商户的交易恢复到原先的水准算是正常? 什么时候没有恢复过去,就需要警惕? 第一次碰到节假日的时候,我们缺乏一个标准线 所以当时就是等,第一天没有恢复,第二天第三天又没有恢复,开始担心。 而且看到一个很奇怪的数据,活跃商户数

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

Python爬虫入门教程 40-100 博客园Python相关40W博客抓取 scrapy

爬前叨叨 第40篇博客吹响号角,爬取博客园博客~本文最终抓取到了从2010年1月1日到2019年1月7日的37W+文章,后面可以分析好多东西了呢 经常看博客的同志知道,博客园每个栏目下面有200页,多了的数据他就不显示了,最多显示4000篇博客如何尽可能多的得到博客数据,是这篇文章研究的一点点核心内容,能√get到多少就看你的了~ 单纯的从每个栏目去爬取是不显示的,转换一下思路,看到搜索页面,有时间~,有时间! 注意看URL链接 https://zzk.cnblogs.com/s/blogpost?Keywords=python&datetimerange=Customer&from=2019-01-01&to=2019-01-01 这个链接得到之后,其实用一个比较简单的思路就可以获取到所有python相关的文章

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

Python爬虫入门教程 39-100 天津市科技计划项目成果库数据抓取 scrapy

爬前叨叨 缘由 今天本来没有打算抓取这个网站的,无意中看到某个微信群有人问了一嘴这个网站,想看一下有什么特别复杂的地方,一顿操作下来,发现这个网站除了卡慢,经常自己宕机以外,好像还真没有什么特殊的.... 爬取网址 http://cgk.kxjs.tj.gov.cn/navigation.do 有很明显的分页表示 列表如下 Request URL: http://cgk.kxjs.tj.gov.cn/navigation.do Request Method: POST 参数说明,里面两个比较重要的 pageNum 页码,numPerPage 每页显示的数据 trades: fields: enterprise_type: archive_year: hsql: searchKey: pageNum: 2 numPerPage: 25

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

GO从入门到进阶教程系列 - 研发高性能ORM框架mysql管理多数据源篇

↵ 上一篇教程我们了解到了基础的GO语法,今天我们来学习如何使用GO开发一个通用的mysql管理器,下面就直接进入步骤环节,代码需要承接上一篇教程的,如有疑问请查看上一篇教程 技术版权归属 广州市金狮网络科技有限公司 (https://kingc.cn/) ,如需商用请联系公司 1. 编写一个多数据源实例的管理器对象,以及改造下之前的DBConfig对象 // 连接管理器 type RDBManager struct { OpenTx bool // 是否开启事务 DsName string // 数据源名称 Db *sql.DB // 非事务实例 Tx *sql.Tx // 事务实例 Errors []error // 操作过程中记录的错误 } // 数据库配置 type DBConfig struct { DsName string // 数据源名称 Host string // 地址IP Port int // 数据库端口 Database string // 数据库名称 Username string // 账号 Password string // 密码 } 2. 编写初始化多个数据源配置的方法,并改造下我们之前的NewMysql方法 // 初始化数据库实例 func NewMysql(conf DBConfig) (*sql.DB, error) { // 定义占位符字符串,使用配置值替换%s和%d link := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8", conf.Username, conf.Password, conf.Host, conf.Port, conf.Database) // 打开mysql获得实例对象 db, err := sql.Open("mysql", link) // 打开mysql失败,返回nil对象,以及返回err对象 if err != nil { return nil, errors.New("mysql初始化失败: " + err.Error()) } // 打开mysql成功返回db对象,err=nil return db, nil } var ( MASTER = "MASTER" // 默认主数据源 RDBs = map[string]*RDBManager{} // 初始化时加载数据源到集合 ) // 初始化多个数据库配置文件 func BuildByConfig(input ...DBConfig) { if len(input) == 0 { panic("数据源配置不能为空") } for _, v := range input { db, err := NewMysql(v) panic(err) if len(v.DsName) == 0 { v.DsName = MASTER } rdb := &RDBManager{ Db: db, DsName: v.DsName, } RDBs[v.DsName] = rdb } } 3. 编写获取数据源的方法,包含是否开启事务,数据源名称参数 // 获取数据源,并控制是否开启事务 func GetDB(openTx bool, ds ...string) (*RDBManager, error) { dsName := MASTER if len(ds) > 0 && len(ds[0]) > 0 { dsName = ds[0] } rt := RDBs[dsName] rdb := &RDBManager{ OpenTx: openTx, Db: rt.Db, DsName: rt.DsName, Errors: []error{}, } // 如设置事务,则初始化事务实例 if rdb.OpenTx { tx, err := rdb.Db.Begin() if err != nil { return nil, errors.New("开启事务失败:" + err.Error()) } rdb.Tx = tx } return rdb, nil } 4. 编写释放数据库资源,并提交事务的方法 // 释放资源并提交事务 func (self *RDBManager) Close() { if self.OpenTx { // 开启事务操作逻辑 if len(self.Errors) > 0 { // 如产生异常则回滚事务 self.Tx.Rollback() } else { self.Tx.Commit() // 如无异常则提交事务 } } } 5. 使用获取的数据源进行保存数据操作,我们改造下之前的CRUD方法 // 通过管理器开启事务保存数据 func (self *RDBManager) CRUD1() error { // 编写需要执行的sql createSql := "insert test_user(username, password, age, sex) values(?,?,?,?)" // 预编译sql,事务模式 stmt, err := self.Tx.Prepare(createSql) if err != nil { return errors.New("预编译失败: " + err.Error()) } // 提交编译sql对应参数 ret, err := stmt.Exec("zhangsan", "123456", 18, 1) if err != nil { return errors.New("提交数据失败: " + err.Error()) } // 保存成功后获取自增ID fmt.Println(ret.LastInsertId()) return nil } 6. 编写单元测试用例 // 单元测试 func TestCRUD1(t *testing.T) { // 数据源配置 conf := DBConfig{ DsName: "test", Host: "127.0.0.1", Port: 3306, Database: "test", Username: "root", Password: "123456", } // 初始化数据源 BuildByConfig(conf) // 获取test数据源 rdb, err := GetDB(true, "test") if err != nil { panic(err) } // 释放资源 defer rdb.Close() // 执行保存数据方法 if err := rdb.CRUD1(); err != nil { panic(err) } } 上面我们已经明白了自定义数据源管理器如何实现,通过示例演示操作,下一篇文章我会讲解如何封装对象转sql入库,敬请期待!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册