xorm使用pgsql的例子

摘要:
测试表/*NavicatPremiumDataTransferSourceServer:localhostSourceServerType:PostgreQLSourceServer版本:90401SourceHost:localhostSource数据库:mmcSourceSchema:publicTargetServerType:PPostgreQLTargetServe

测试表

/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : PostgreSQL
 Source Server Version : 90401
 Source Host           : localhost
 Source Database       : mmc
 Source Schema         : public

 Target Server Type    : PostgreSQL
 Target Server Version : 90401
 File Encoding         : utf-8

 Date: 08/15/2015 20:24:56 PM
*/

-- ----------------------------
--  Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS "public"."student";
CREATE TABLE "public"."student" (
    "id" int4 NOT NULL DEFAULT nextval('student_id_seq'::regclass),
    "name" varchar(255) NOT NULL DEFAULT ''::character varying COLLATE "default",
    "age" int4 NOT NULL DEFAULT 0
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."student" OWNER TO "mmc";

-- ----------------------------
--  Records of student
-- ----------------------------
BEGIN;
INSERT INTO "public"."student" VALUES ('1', 'tom', '25');
COMMIT;

-- ----------------------------
--  Primary key structure for table student
-- ----------------------------
ALTER TABLE "public"."student" ADD PRIMARY KEY ("id") NOT DEFERRABLE INITIALLY IMMEDIATE;

直接贴代码

package main

import (
    "fmt"
    "github.com/go-xorm/xorm"
    _ "github.com/lib/pq"
    "reflect"
    "unsafe"
)

var engine *xorm.Engine

func BytesToString(b []byte) string {
    bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
    sh := reflect.StringHeader{bh.Data, bh.Len}
    return *(*string)(unsafe.Pointer(&sh))
}

func StringToBytes(s string) []byte {
    sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
    bh := reflect.SliceHeader{sh.Data, sh.Len, 0}
    return *(*[]byte)(unsafe.Pointer(&bh))
}

func main() {
    engine, _ = xorm.NewEngine("postgres", "user=mmc password=mmc dbname=mmc host=127.0.0.1 port=5432 sslmode=disable")
    sql := "select * from student"
    rowArray, _ := engine.Query(sql)
    for _, row := range rowArray {
        for colName, colValue := range row {
            value := BytesToString(colValue)
            fmt.Println(colName, value)
        }
    }
}

免责声明:文章转载自《xorm使用pgsql的例子》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++对于大型图片的加载缩放尝试centos 6.5源码编译安装subversion 1.8.10下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Java生鲜电商平台-优惠券系统设计详解

Java Fresh Food电子商务平台-优惠券系统的设计详细说明了优惠券的名称、面额、类型、有效期、使用范围、相互排斥以及作为电子商务最常用的营销手段的平台。用户在收到优惠券之前不知道优惠券的面值和使用限额,但只有在收到之后才知道优惠券的面额和使用限额。用户可在收到优惠券后3天内使用;商户A发放的优惠券只能在购买商户A的商品时使用,一台设备只能使用一张新...

硬中断与软中断的区别!

在多核系统上,一个中断通常只能中断一个CPU(也有一种特殊情况,即主机上有一个硬件通道。它可以在没有主CPU支持的情况下同时处理多个中断。软中断:1。软中断与硬中断非常相似。生成软中断的进程必须是当前正在运行的进程,因此它们不会中断CPU。...

socket网络编程(二)—— 实现持续发送

exit(exit_FAILURE);}//初始化套接字元素structsockaddr_inserver_addr;intserver_len=大小(server_addr);内存集(&server_len);0){ERR_EXIT(“listenclientfail”);client_len);buffer);}//关闭套接字(m_con...

如何根据角色批量激活SAP Fiori服务

我们知道Fiori的角色不同于ERP,即使您的帐户具有SAP_ALL权限,但当您打开Fiori时,它也是空的:只有在您将Fiori所需的角色添加到帐户并激活相关服务时,才能使用Fioriapp。否则,打开Fioriapps将报告错误。可以通过GUI事务代码找到特定错误:/n/iwfnd/error_Log以查看特定原因。...

js学习-es6实现枚举

最近,我大部分时间都在写dart,突然使用了js。我发现js不能直接声明枚举。目录枚举功能对象冻结()符号实现反映了不可更改值的唯一性。请注意,枚举特性枚举值不能重复,也不能修改。Switchcase可以直接判断对象。冻结()对象。方法可以冻结对象。无法更改实现constEnumSex=Object。冷冻枚举性别。人=1;安慰日志;//符号(男性)表示值co...

Linux中使用gdb dump内存

在应急响应中,我们经常需要转储某个内存块以进行分析。今天我们将讨论使用gdb命令转储sshd进程的内存。根据Linux系统的设计理念,内核只提供转储内存的机制。用户要转储什么样的内存以及要转储多少内存是策略问题,由用户决定。之后,转到/tmp目录,可以从dump中看到sshd.dmp内存字符串-10sshd.dump#,以查看sshd.ddump内存中至少超...