首页 文章 精选 留言 我的

精选列表

搜索[高性能rpc框架],共10000篇文章
优秀的个人博客,低调大师

GO从入门到进阶教程系列 - 研发高性能ORM框架操作mysql篇

上一篇教程我们了解到了基础的GO语法,今天我们来学习如何使用GO操作mysq,下面就直接进入步骤操作环节 技术版权归属 广州市金狮网络科技有限公司 (https://kingc.cn/) ,如需商用请联系公司 1. 先获取mysql驱动,类似Java加载驱动jar, 通过window cmd命令或者Linux控制台执行 go get github.com/go-sql-driver/mysql 2. 我们先写个数据库连接对象方便扩展 // 数据库配置 type DBConfig struct { Host string // 地址IP Port int // 数据库端口 Database string // 数据库名称 Username string // 账号 Password string // 密码 } 3. 通过数据库配置进行mysql实例化 func NewMysql() (*sql.DB, error) { // 初始化mysql连接参数 conf := DBConfig{ Host: "127.0.0.1", Port: 3306, Database: "test", Username: "root", Password: "123456", } // 定义占位符字符串,使用配置值替换%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 { panic(util.AddStr("mysql初始化失败: ", err.Error())) return nil, errors.New("mysql初始化失败: " + err.Error()) } // 打开mysql成功返回db对象,err=nil return db, nil } 4. 获得mysql操作实例后,进行增删查改操作(由于时间关系,暂时只写了新增示例,包含事务和非事务) func CRUD(db *sql.DB) error { // 编写需要执行的sql createSql := "insert test_user(username, password, age, sex) values(?,?,?,?)" // 预编译sql stmt, err := db.Prepare(createSql) if err != nil { panic("预编译失败: " + err.Error()) } // 提交编译sql对应参数 ret, err := stmt.Exec("zhangsan", "123456", 18, 1) if err != nil { panic("提交数据失败: " + err.Error()) } // 保存成功后获取自增ID fmt.Println(ret.LastInsertId()) return nil } func CRUD1(db *sql.DB) error { // 编写需要执行的sql createSql := "insert test_user(username, password, age, sex) values(?,?,?,?)" // 预编译sql,事务模式 tx, err := db.Begin() if err != nil { panic("开启事务失败: " + err.Error()) } stmt, err := tx.Prepare(createSql) if err != nil { tx.Rollback() // 回滚事务 panic("预编译失败: " + err.Error()) } // 提交编译sql对应参数 ret, err := stmt.Exec("zhangsan", "123456", 18, 1) if err != nil { tx.Rollback() // 回滚事务 panic("提交数据失败: " + err.Error()) } // 保存成功后获取自增ID fmt.Println(ret.LastInsertId()) tx.Commit() // 提交事务 return nil } 5. 最后执行测试用例test func TestMysql1(t *testing.T) { db, err := NewMysql() if err != nil { panic(err) } CRUD(db) } func TestMysql2(t *testing.T) { db, err := NewMysql() if err != nil { panic(err) } CRUD1(db) } 上面的几个示例基本涵盖GO操作mysql的用法,下一篇文章我会讲解如何封装可扩展性强的mysql底层,敬请期待!

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

高性能跨平台网络通信框架 HP-Socket v6.0.9 发布

项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : https://www.docin.com/p-4592706661.html 下载地址 : https://github.com/ldcsaa/HP-Socket QQ Group: 44636872, 663903943 v6.0.9 更新 一、主要更新 优化Linux通信组件多路复用处理架构,避免“惊群”问题,提升性能。 自动为 HP-Socket 工作线程设置唯一线程名称,方便跟踪调试。 TCP Client/Agent 以同步方式连接服务端时,支持通过 SetSyncConnectTimeout() 设置连接超时时间。 TcpServer/UdpServer/UdpNode 支持通过 SetDualStack() 方法设置是否支持 IPv4/IPv6 双协议栈。 客户端组件(Client/Agent)手工绑定本地地址的情况下,会根据连接的远程地址自动绑定本地的IPv4或IPv6地址。 支持定时回收垃圾内存和被动回收垃圾内存(默认使用定时回收,回收间隔 15 秒)。 修复 HTTP 组件 keep-alive 属性值丢失问题 Windows版本支持在没有安装 MFC 的环境下编译。 二、第三方库更新 openssl 升级到 3.0.22 版本 mimalloc 升级到 3.5.0 版本 jemalloc 升级到 5.3.1 版本 llhttp 升级到 9.4.3 版本 zlib 升级到 1.3.2 版本 kcp 升级到 2.1.1 版本 HP-Socket 组件列表 基础组件 SSL 组件 HTTP 组件

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

高性能跨平台网络通信框架 HP-Socket v6.0.8 发布

项目主页:http://www.oschina.net/p/hp-socket 开发文档: https://www.docin.com/p-4592706661.html 下载地址: https://github.com/ldcsaa/HP-Socket v6.0.8 更新 一、主要更新 优化Linux通信组件多路复用处理架构,避免“惊群”问题,提升性能。 自动为 HP-Socket 工作线程设置唯一线程名称,方便跟踪调试。 TCP Client/Agent 以同步方式连接服务端时,支持通过 SetSyncConnectTimeout() 设置连接超时时间。 TcpServer/UdpServer/UdpNode 支持通过 SetDualStack() 方法设置是否支持 IPv4/IPv6 双协议栈。 客户端组件(Client/Agent)手工绑定本地地址的情况下,会根据连接的远程地址自动绑定本地的IPv4或IPv6地址。 支持定时回收垃圾内存和被动回收垃圾内存(默认使用定时回收,回收间隔 15 秒)。 修复 HTTP 组件 keep-alive 属性值丢失问题 Windows版本支持在没有安装 MFC 的环境下编译。 二、第三方库更新 brotli 升级到 1.2.0 版本 openssl 升级到 3.0.19 版本 mimalloc 升级到 2.2.7 版本 HP-Socket 组件列表 基础组件 SSL 组件 HTTP 组件

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

高性能跨平台网络通信框架 HP-Socket v6.0.7 发布

项目主页:http://www.oschina.net/p/hp-socket 开发文档: https://www.docin.com/p-4592706661.html 下载地址: https://github.com/ldcsaa/HP-Socket QQ Group: 44636872, 663903943 v6.0.7 更新 一、主要更新 优化Linux通信组件多路复用处理架构,避免“惊群”问题,提升性能。 自动为 HP-Socket 工作线程设置唯一线程名称,方便跟踪调试。 TCP Client/Agent 以同步方式连接服务端时,支持通过 SetSyncConnectTimeout() 设置连接超时时间。 TcpServer/UdpServer/UdpNode 支持通过 SetDualStack() 方法设置是否支持 IPv4/IPv6 双协议栈。 客户端组件(Client/Agent)手工绑定本地地址的情况下,会根据连接的远程地址自动绑定本地的IPv4或IPv6地址。 支持定时回收垃圾内存和被动回收垃圾内存(默认使用定时回收,回收间隔 15 秒)。 Windows版本支持在没有安装 MFC 的环境下编译。 二、第三方库更新 openssl 升级到 3.0.18 版本 mimalloc 升级到 2.2.4 版本 HP-Socket 组件列表 基础组件 SSL 组件 HTTP 组件

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

高性能跨平台网络通信框架 HP-Socket v5.9.2 发布

项目主页:http://www.oschina.net/p/hp-socket 开发文档: https://www.docin.com/p-4062394468.html 下载地址: https://github.com/ldcsaa/HP-Socket v5.9.2 更新 一、主要更新 HTTP Cookie 请求和响应头 ‘Cookie’、‘Set-Cookie’ 支持不区分大小写 更好支持 GCC 11 编译器 二、第三方库更新 openssl 升级到 1.1.1u 版本 mimalloc 升级到 1.8.2 版本 HP-Socket 组件列表 基础组件 SSL 组件 HTTP 组件

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

高性能跨平台网络通信框架 HP-Socket v5.9.1 发布

项目主页:http://www.oschina.net/p/hp-socket 开发文档: https://www.docin.com/p-4062394468.html 下载地址: https://github.com/ldcsaa/HP-Socket QQ Group: 44636872, 663903943 v5.9.1 更新 一、主要更新 更新流式压缩/解压相关的若干 API,支持分段压缩/解压(参考:Change-APIs.txt) 更新 SSL 模块,支持 OpenSSL 3.0 二、第三方库更新 llhttp 升级到 8.1.0 版本 zlib 升级到 1.2.13 版本 openssl 升级到 1.1.1s 版本 mimalloc 升级到 1.7.9 版本 jemalloc 升级到 5.3.0 版本 HP-Socket 组件列表 基础组件 SSL 组件 HTTP 组件

资源下载

更多资源
Spring

Spring

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册