golang 数据库批量提交思路

简介: golang db

go 操作数据库的库,没有像 java jdbc 那样得到众多数据库厂家的广泛支持。例如 golang 操作 oracle 数据库需要借助 oracle client 的支持。对于批量操作数据,众多golang 封装的库,都没有提供类似 java jdbc 中 PreparedStatement 的操作。鉴于此,从数据库提供的语法层面来解决,不失为一种考虑。
以 oracle 为例,可以使用 in,union ,union all ,等语法拼接sql 语句。[注:单条语句长度要适当]

  • 前置条件:假设表 T1 有两个字段 id(数字类型),name,(字符类型)
  • 要根据具体业务选择 union 或 union all
  • eg-insert

insert into T1 select 1,"value1" from dual union all
insert into T1 select 2,"value2" from dual union all
...

  • eg-delete

delete from T1 where id in(1,2,... 依次拼接);

  • eg-update

update T1 set name=name||'test' where id in(1,2,... 依次拼接);

这种方式拼接方式局限也很明显,有拼接参数的负担,拼接参数也不是无限长,要根据实际业务考虑截断。暂时没有想到其他更优的方法。

目录
相关文章
|
8月前
|
SQL 关系型数据库 MySQL
探索Gorm - Golang流行的数据库ORM框架
探索Gorm - Golang流行的数据库ORM框架
|
5月前
|
SQL 关系型数据库 MySQL
go如何使用SQLX操作MySQL数据库?
sqlx是Go语言中一款流行的第三方数据库操作包,它扩展了Go标准库`database/sql`的功能,极大地简化了数据库操作流程并提供了丰富的数据库交互方法。
|
2月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
46 1
|
2月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
104 4
|
2月前
|
SQL 关系型数据库 MySQL
go语言中安装数据库驱动
【11月更文挑战第1天】
75 5
|
2月前
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
70 4
|
2月前
|
关系型数据库 MySQL 数据库连接
go语言中打开数据库连接
【11月更文挑战第1天】
40 2
|
3月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
119 11
|
8月前
|
关系型数据库 Go 数据库
【Go语言专栏】Go语言中的数据库迁移与版本控制
【4月更文挑战第30天】本文介绍了Go语言中的数据库迁移和版本控制。针对数据库迁移,文章提到了使用Flyway和Liquibase两个工具。通过示例展示了如何在Go中集成这两个工具进行数据库结构的修改,以适应业务变化。而对于版本控制,文章以Git为例,说明了如何利用Git进行源代码和配置文件的管理,确保代码一致性与可追溯性。
284 0
|
8月前
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
1476 0