对 sqlx 误解的澄清
上次在《Go 数据操作之 grop 和 sqlx》上说,使用 sqlx 过程中,对它产生一些误会,其实当时是拿它与 gorp 做比较,本身 gorp 是一个半自动型的 orm 库,而 sqlx 并不是在 orm 范畴。便利性没有比拟性的。
sqlx 有它的应用场合,因为使用它连接数据库,很简单,不用配置 struct 实体关联到表,直接可以把执行 sql 的结果(结果集)填充到自己期望的实体中,这个过程可以避免不同的实体之间的来回转换,有利于清晰化项目的实体结构,减少没必要的附加实体。这个和 gorp 有明显的差别,gorp 必须指定一个实体对应数据库的表,指定主键等信息。现在移动终端的接口开发,如果需要轻量的数据库操作库,sqlx 还是相当完美的,特别是读多于写操作的时候。
另外 sqlx 操作数据控制得更细致,追求更高的读性能;同样也具备 select get 获取结果集合和结果个体的快捷方法;当然,如果进行写数据操作,可能要繁琐些,exec 方法比较原始,适合做二次封装,再使用。
个人建议 gorp 和 sqlx 同时使用。
sqlx 有它的应用场合,因为使用它连接数据库,很简单,不用配置 struct 实体关联到表,直接可以把执行 sql 的结果(结果集)填充到自己期望的实体中,这个过程可以避免不同的实体之间的来回转换,有利于清晰化项目的实体结构,减少没必要的附加实体。这个和 gorp 有明显的差别,gorp 必须指定一个实体对应数据库的表,指定主键等信息。现在移动终端的接口开发,如果需要轻量的数据库操作库,sqlx 还是相当完美的,特别是读多于写操作的时候。
另外 sqlx 操作数据控制得更细致,追求更高的读性能;同样也具备 select get 获取结果集合和结果个体的快捷方法;当然,如果进行写数据操作,可能要繁琐些,exec 方法比较原始,适合做二次封装,再使用。
个人建议 gorp 和 sqlx 同时使用。
1 楼: Fengz 发表于 2016-08-14 15:35:04 回复 TA
2 楼: 龅牙驴 发表于 2016-08-18 00:35:27 回复 TA
引用"Fengz"的评论
搜索进入了这个,这个文章节省了我很多时间,谢谢。 我目前会选用 sqlx ,因为我要对现成系统做二次开发,没太多心思去定义结构体,所以就不能用 orm。 后续我会试一下您推荐的 gorp和sqlx共用。 谢谢。3 楼: wencan 发表于 2018-08-04 12:05:51 回复 TA
4 楼: 龅牙驴 发表于 2018-08-04 12:05:51 回复 TA
引用"wencan"的评论
那么问题来了,如何共用?能分享下你的方案吗?