package main

import(
"fmt"
"database/sql"
_ "github.com/lib/pq"
"github.com/kataras/iris"
"github.com/kataras/iris/middleware/logger"
"github.com/kataras/iris/middleware/recover"
) const(
host = "127.0.0.1"
port =
user = "test"
password = "test"
dbname = "test"
) type User struct{
Uno string `json:"uno"`
Uname string `json:"uname"`
} func main(){
app := iris.New() app.Logger().SetLevel("debug") app.Use(recover.New())
app.Use(logger.New()) app.Get("/users", func(ctx iris.Context){
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",host, port, user, password, dbname) db, err := sql.Open("postgres", psqlInfo)
if err != nil{
panic(err)
}
defer db.Close() err = db.Ping()
if err != nil{
panic(err)
} fmt.Println("Successfully connected!") var users []User rows,err := db.Query("select uno,uname from t_user")
if err != nil{
panic(err.Error)
}
defer rows.Close() for rows.Next(){
rows.Columns() var user User
err = rows.Scan(&user.Uno,&user.Uname) if err != nil {
panic(err.Error)
} users = append(users, user)
} ctx.JSON(users)
}) app.Get("/user", func(ctx iris.Context){
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",host, port, user, password, dbname) db, err := sql.Open("postgres", psqlInfo)
if err != nil{
panic(err)
}
defer db.Close() err = db.Ping()
if err != nil{
panic(err)
} fmt.Println("Successfully connected!") sqlQuery := `select uno,uname from t_user where uno=$` var user User row := db.QueryRow(sqlQuery, ctx.URLParam("uno")) err = row.Scan(&user.Uno,&user.Uname) switch err{
case sql.ErrNoRows:
fmt.Println("No rows were returned!")
case nil:
fmt.Println(user)
ctx.JSON(user)
default:
panic(err)
} }) app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
}

005-Go 操作PostgreSQL数据库的更多相关文章

  1. hibernate 操作 Postgresql 数据库报 operator does not exist: integer = character varying

    网上的说法如下: Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同: Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正 ...

  2. C#/Python/MATLAB操作PostgreSQL数据库

    PostgreSQL数据库是一个功能非常强大的开源数据库,支持多种SQL特性,非常好用.此外由于结合PostGIS可以实现空间数据库功能,故非常适合GIS领域的使用.本文旨在介绍C#.Python.M ...

  3. Python 操作 PostgreSQL 数据库

    我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...

  4. Jmeter_实现操作postgresql数据库

    [环境] ①Jmeter版本:3.2,JDK:1.8: ②postgresql驱动包postgresql-9.3-1103.jdbc4,将该jar包置于..\apache-jmeter-3.2\lib ...

  5. 使用JPA + Eclipselink操作PostgreSQL数据库

    首先确保您已经安装了PostgreSQL.您可以参考我这篇文章PostgreSQL扫盲教程. 使用Eclipse创建一个新的JPA project: Platform选择EclipseLink,作为J ...

  6. python操作postgresql数据库

    import psycopg2 conn = psycopg2.connect(database=") cur = conn.cursor() cur.execute("CREAT ...

  7. 010-Go 操作PostgreSQL数据库2

    1:sql脚本 create table post( id serial primary key, content text, author ) ) 2:post.go package post im ...

  8. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  9. Rust 连接 PostgreSQL 数据库

    这次,我们使用 postgres 这个 crate 来连接和操作 PostgreSQL 数据库. 创建好项目后,在 cargo.toml 里添加 postgres 的依赖: 首先,导入相关的类型,并创 ...

随机推荐

  1. 利用MPMoviePlayerViewController 播放视频 iOS

    方法一: @property (nonatomic, strong) MPMoviePlayerController *player; NSString *url = [[NSBundle mainB ...

  2. Android 实现页面跳转并传递参数教程

    首先我们来看一下实现的功能:     第二,我们看一下实现这个功能,总共会接触到哪些文件和代码. 1.实现本功能总共涉及如下6个文件 2.实现本功能,总共涉及如下6个文件中的如下代码: (1) 效果: ...

  3. Unity动画知识之二:Animator动画状态机

    上次我们讲过Unity游戏动画从入门到住院,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这个技能的,至少也 ...

  4. IOS的唯一标识符问题(转)

    引用地址 http://www.zhihu.com/question/22599526/answer/21938878 网上搜了下IOS手机标志的种类,直接引用过来. UDID [[UIDevice ...

  5. 梅尔罗斯百度云在线观看迅雷下载Patrick Melrose磁力BT下载

    原名:Patrick Melrose 地区:英国 语言:英语 首播:2018-05-12(美国) 电视台:Showtime 类型:剧情 别名:浮生若梦 编剧:大卫·尼克尔森 导演:爱德华·贝尔格 主演 ...

  6. MySQL中的information_schema数据库表说明

    MySQL 中的 information_schema 数据库   版权声明:https://blog.csdn.net/kikajack/article/details/80065753 1. 概述 ...

  7. perf使用示例1

    perf使用示例1 perf - Performance analysis tools for Linux Performance counters for Linux are a new kerne ...

  8. 洛谷 P1138 第k小整数

    题目描述 现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000. 输入输出格式 输入格式: 第一行为n和k; 第二行开 ...

  9. scala编程第15章

    package myscala15import myscala.Element.elemimport myscala.Element sealed abstract class Expr case c ...

  10. go语言之进阶篇WriteString的使用

    1.WriteString的使用 示例: package main import ( "fmt" "os" ) func WriteFile(path stri ...