zoukankan      html  css  js  c++  java
  • beego框架之orm模块——PostgreSQL

      beego框架默认支持三种数据库类型(MySQL,Sqlite,PostgreSQL)。这三种数据库的配置虽然大同小异,但也有各自的差别。如今该总结下了。

      以下是基于beego框架对PostgreSQL数据库进行操作。

    models/models.go

     1 package models
     2 
     3 import (
     4     "github.com/astaxie/beego/orm"
     5 )
     6 
     7 type Student struct {
     8     Id   int64
     9     Name string
    10     Age  int
    11 }
    12 
    13 func init() {
    14     orm.RegisterModel(new(Student))
    15 }

    main.go

     1 package main
     2 
     3 import (
     4     "fmt"
     5     "github.com/astaxie/beego"
     6     "github.com/astaxie/beego/orm"
     7     "postgresql/models"
     8 
     9     _ "github.com/lib/pq"
    10     _ "postgresql/routers"
    11 )
    12 
    13 func init() {
    14     // PostgreSQL 配置
    15     orm.RegisterDriver("postgres", orm.DR_Postgres) // 注册驱动
    16     orm.RegisterDataBase("default", "postgres", "user=postgres password=tom dbname=test host=127.0.0.1 port=5432 sslmode=disable")
    17 
    18     /**
    19      * MySQL 配置
    20      * 注册驱动
    21      * orm.RegisterDriver("mysql", orm.DR_MySQL)
    22      * mysql用户:root ,root的秘密:tom , 数据库名称:test , 数据库别名:default
    23      * orm.RegisterDataBase("default", "mysql", "root:tom@/test?charset=utf8")
    24      */
    25      /**
    26      * Sqlite 配置
    27      * 注册驱动
    28      * orm.RegisterDriver("sqlite", orm.DR_Sqlite)
    29      * 数据库存放位置:./datas/test.db , 数据库别名:default
    30      * orm.RegisterDataBase("default", "sqlite3", "./datas/test.db")
    31      */
    32     // 自动建表
    33     orm.RunSyncdb("default", false, true)
    34 }
    35 
    36 func main() {
    37     orm.Debug = true
    38     o := orm.NewOrm()
    39     o.Using("default")
    40     stu := new(models.Student)
    41     stu.Name = "tom"
    42     stu.Age = 25
    43 
    44     fmt.Println(o.Insert(stu))
    45     beego.Run()
    46 }

    PostgreSQL数据库里自动建表和插入数据库如下:

      

  • 相关阅读:
    Springboot整合dubbo搭建基本的消费、提供和负载均衡
    SpringBoot与Dubbo整合的三种方式
    Dubbo整合SpringBoot
    Java 如何有效地避免OOM:善于利用软引用和弱引用
    finalize的作用
    垃圾回收
    不同JDK版本之间的intern()方法的区别-JDK6 VS JDK6+
    Java8内存模型—永久代(PermGen)和元空间(Metaspace)
    to meet you
    Atomic long 和long的区别
  • 原文地址:https://www.cnblogs.com/hezhixiong/p/4617951.html
Copyright © 2011-2022 走看看