mysql bigint转string_go语言学习项目篇Mysql_Markdown(2)

GORM学习

什么是ORM?

Object Relational Mapping
对象 关系 映射
程序中的对象/实例(例如Go中的结构实例) 关系数据库(例如MySQL)

比如

package mainimport (    "fmt")type Student struct {
        id int     name string}func main() {
        u1 :=Student{
    1,"JOJO"}    fmt.Println(u1)}main方法打印结果:{
    1 JOJO}

我们使用MySQL的原因就是将数据存储到数据库中,MySQL中的数据表就是结构体,数据行就是对象u1,‘字段’就是‘id int’,'name string'这样的字段。

首先按照视频讲解,我们在github中搜索到GORM,进入官网后,查看文档,为了锻炼看文档的能力,这教学视频看到开头,不看也罢!!!!开始看文档,分析我可能用到的要求。

1.连接数据库2.增删改查 3.遍历数据库表的内容//照着这个步骤搜寻知识,有空就全面总结。当然第一步登录github,创建一个账号,然后想一个读起来很6的拼音打上去!我的Username:Xiuluofashi然后在里面找到jinzhu的GORM,打开就能找到GORM官网文档https://gorm.io/docs/

开始正式学习:

下载安装驱动:

go get -u github.com/jinzhu/gormgo get -u

完成后可以开始学习了

1.使用GORM连接数据库

官方文档:

import (  "gorm.io/driver/mysql"  "gorm.io/gorm")func main() {
      // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情  dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})}

连接:

package mainimport (    _ "github.com/go-sql-driver/mysql"    "github.com/jinzhu/gorm")type Student struct {
        id int     name string     age int    sex string }func main() {
        // 这里的信息是我的数据库的信息    dsn := "root:123456@tcp(127.0.0.1:3306)/study?charset=utf8mb4&parseTime=True&loc=Local"    // 这里有2个值,一个是 *gorm.DB类型 一个是error类型,需要两个变量来接受    db, err := gorm.Open("mysql",dsn)    // err是报错信息需要验证    if err != nil {
            panic(err)}    // 运行一次结束程序    defer db.Close()     // 把结构体和数据表进行对应    db.AutoMigrate(&Student{})    u1 := Student{
    id:1, name:"叶良辰", age:19,sex:"男"}    db.Create(&u1)}然后我这里连接后,看我的study数据库中的信息还是为空!!!!!(〃>目<)mysql> show tables;Empty set (0.00 sec)也就是说根本没连上,我想是不是端口号弄错了,然后我检查端口show global variables like 'port';+---------------+-------+| Variable_name | Value |+---------------+-------+| port          | 3306  |+---------------+-------+1 row in set, 1 warning (0.02 sec)起初以为密码密码输入错了,改了一个值后报错panic: Error 1045: Access denied for user 'root'@'localhost' (using password: YES)那现在的情况就是,账号密码端口都是对的情况下,数据库连上了但是数据录不进去的问题。最后想起来了,之前go get的时候有一个exec;exec: "gcc": executable file not found in %PATH%原来是找错了方向,安装gcc那么就需要MinGW64位版本的软件。脚本之家就能下载。安装完后,配置bin环境变量,使用命令行gcc -v 出来代码就安装上了,然后运行代码,还是一样的问题,得不到解决,弄到这里花了N多个小时却没有解决这种小问题,关键是本人还知道这是学习前的准备工作,卡在了这里!!!!!!很崩溃,但是得牢牢记住一句话--搜集资源,心态稳住,行胜于言该找问题,还是得找问题。毕竟没有得到解决。

好 问题已经得到了解决

GORM操作大全总结

再上一份知识点中,我们想把Student{id:1, Name:"叶良辰", Age:19,Sex:"男"}这数据行放进结构中。不管怎么样都没有数据,这是因为GORM更新后,与视频中的有一些差别,原来的语法和新的GORM操作语法不同,这才多久呢,它就更新了,还出了新的语法,旧写法已经不支持了,除非使用原来老旧的知识点,这属于创建的功能 创建的功能。

不过首先我们要先连接数据库,这个因为更新了,我们没有视频学习,就只能看它的文档了,真的不习惯,之前学习视频才是主力军,但只有文档才是最新的。

1.连接数据库

package mainimport (    "gorm.io/driver/mysql"    "gorm.io/gorm")//type Student struct {
        Id   int `gorm:"primaryKey"`    Name string    Age  int    Sex  string}func main() {
    // dsn:=[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN] dsn=data-source-name    dsn := "root:123456@tcp(127.0.0.1:3306)/study?charset=utf8mb4&parseTime=True&loc=Local"    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})    if err != nil {
            panic(err)}    //数据对齐    db.AutoMigrate(&Student{})    //defer db.Close() 新的GORM包,这个就不用写了,写了反而报错。  }//运行不报错就成功了

2创建语句

2.1创建单个语句

    // 创建记录    stu_01 := Student{
    1, "红太郎", 20, "男"}    result:=db.Create(&stu_01)    // stu_01.ID             // 返回插入数据的主键    // res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQLbigint 类型是一种大整数类型,其范围为 -9223372036854775808 到 9223372036854775807。如果您在使用 MySQL 数据库时遇到了查询慢的问题,可以尝试以下方法: 1. 确认索引是否合理 在 MySQL 中,索引是提高查询效率的重要手段。如果您的表中存在 bigint 类型的字段,并且您的查询语句中使用了该字段作为条件,那么建立相应的索引可以大大提高查询效率。 使用以下命令检查索引是否合理: ``` SHOW INDEX FROM table_name; ``` 如果没有相应的索引,可以使用以下命令创建索引: ``` CREATE INDEX index_name ON table_name (column_name); ``` 2. 避免全表扫描 全表扫描是一种低效的查询方式,会导致查询效率低下。因此,应尽量避免使用全表扫描。 例如,如果您要查询表中某个 bigint 类型的字段的值是否等于某个值,可以使用以下语句: ``` SELECT * FROM table_name WHERE column_name = 123456; ``` 而不是使用以下语句: ``` SELECT * FROM table_name WHERE column_name; ``` 3. 优化查询语句 优化查询语句也是提高查询效率的一种方法。您可以使用 EXPLAIN 命令来查看查询语句的执行计划,并根据执行计划来进行优化。 例如,以下查询语句可能会导致查询效率低下: ``` SELECT * FROM table_name WHERE column_name LIKE '%keyword%'; ``` 可以优化为: ``` SELECT * FROM table_name WHERE column_name LIKE 'keyword%'; ``` 4. 调整 MySQL 配置参数 在 MySQL 中,有一些配置参数可以影响查询效率。您可以根据实际情况调整这些参数来提高查询效率。 例如,以下参数可以影响查询效率: - innodb_buffer_pool_size:控制 InnoDB 存储引擎使用的内存池大小。 - query_cache_size:控制查询缓存的大小。 - join_buffer_size:控制连接缓存的大小。 调整这些参数时,请注意不要将它们设置得过高或过低,以免影响系统的稳定性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值