• 1、使用tx时,rows没有close是否会导致有未被释放的数据库连接?
    当最后执行tx.Commit()或tx.Rollback()时,相应的连接会被关闭。不会存在未被释放的情况。但仍然建议养成关闭的好习惯。

    2、rows.Err()的作用是什么?
    Err()的相关注释是这样写的:Err returns the error, if any, that was encountered during iteration.
    但请注意,这些错误,仅与迭代过程中rows错误相关,比如在下一个Next()时,数据库出问题了,或者tx已经结束,tx发生错误。
    与Scan()处产生的错误没有任何关联。
    所以,这两部分错误应该单独分别处理。

    3、rows.Next()中进行tx.Exec(update)操作?
    如果rows.Next()是由tx发起的,update语句中包含$1转译,则会报错。此时update相关,应该放到Next循环之外进行。
    如果进行无转移update,则允许该操作。
    如果rows.Next()是有DB发起的,则以上操作都是允许的。

  • 总结下bytes包中的各操作。

  • grpc本身可以工作于常规的tcp模式,但出于数据交换的保密性及安全角度考虑,在其上加一层tls也是极好的。

  • package main
    
    import (
        "fmt"
    )
    
    var DEBUG = "NO"
    
    func main() {
        fmt.Printf("DEBUG is %q\n", DEBUG)
    }
    

    使用ldflags动态注入:

    go build -ldflags '-X main.DEBUG=YES' test.go
    
  • -- 生成 RSA 私钥(带密码的)
    openssl genrsa -des3 -out rsa_private_key.pem 2048

    -- 生成 RSA 私钥(传统格式的)

    openssl genrsa -out rsa_private_key.pem 2048

    -- 将传统格式的私钥转换成 PKCS#8 格式的

    openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

    -- 生成 RSA 公钥

    openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

    -- 证书请求(可拿到第三方进行签名)
    openssl req –new -x509 -key rsa_private_key.pem -out server.pem

    -- 自签名证书
    openssl req -new -x509 -key rsa_private_key.pem -out ca.pem -days 1095

  • 遇到需要导出数据字典的情况,PowerDesign的导出方式不再细表。其实在有备注的情况下,可以直接从数据库中导出相应的字典。

    SELECT  A.TABLE_NAME AS "表名", A.COLUMN_NAME AS "字段名", 
    DECODE(A.CHAR_LENGTH, 0, DECODE(A.DATA_SCALE, NULL, A.DATA_TYPE, A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),
    A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as "字段类型",A.DATA_DEFAULT AS "默认值",
    A.NULLABLE AS "能否为空", B.comments AS "备注"
    FROM sys.user_tab_columns A, sys.user_col_comments B
    WHERE A.table_name=B.table_name AND A.COLUMN_NAME=B.COLUMN_NAME AND A.TABLE_NAME IN (select table_name from user_tables)
    ORDER BY A.TABLE_NAME
    
  • gRPC是Google出品的一款基于Protobuf与HTTP/2的高性能开源RPC通信框架。

  • 反射在计算机的概念里是指一段程序审查自身结构的能力,主要通过类型进行审查。它是元编程的一种形式,同样也是引起混乱的重大来源。

    但同时,合理利用反射也为我们编程提供了非常灵活的操作方式及trick,让程序更好的运行。

  • 记录下mysql的主从配置方案。

  • 记录下Linux的常用命令,以备不时之需。

Previous        Next