• 数据库有就更新 没有就插入


    背景

    项目需要一个 图片轮播图配置接口,图片一共就 几张,需要上传到 项目下的一个文件夹,通过url 访问 图片。场景中,图片一共就 5张,每张图片可以单独编辑,比如删除,或者修改,五张图片 有先后顺序。

    我的思路:

    创建一个图片的数据表,  字段 包含 图片顺序字段,  每张图片一条数据,

    // 上传配置图片
    func UploadRotationPictureDao(data *dto.AppImages) error {
    
    	// 先查询 数据库  看传入的image_order = 传入的id 图片 数据库中目前有没有
    	// 没有就插入新的, 有就更新这条的 图片信息
    	var count int
    	search := `select count(*)from t_app_images where image_order = ?`
    
    	err := mysql.DB.Get(&count, search, data.ImageOrder)
    
    	if err != nil {
    		if err != nil {
    			zap.L().Error("UploadRotationPictureDao err:", zap.Error(err))
    			return err
    		}
    
    	}
    	
    	// 说明image_order = 传入的id 图片 已经在数据库有了 不需要新插入了,直接更新就可以
    
    	if count > 0 {
    		// update
    		updatasql := `UPDATE t_app_images SET image_url= ? ,update_time= ? WHERE image_order= ?;`
    		_, err = mysql.DB.Exec(updatasql, data.ImageUrl, data.UpdateTime, data.ImageOrder)
    		if err != nil {
    			zap.L().Error("UploadRotationPictureDao update err:", zap.Error(err))
    			return err
    		}
    
    	} else {
    		// TODO 有图片就更细 没有图片就插入
    		sql := `insert into t_app_images(image_order,image_url,create_time,update_time) values(?,?,?,?)`
    
    		_, err = mysql.DB.Exec(sql, data.ImageOrder, data.ImageUrl, data.CreateTime, data.UpdateTime)
    		if err != nil {
    			zap.L().Error("UploadRotationPictureDao create err:", zap.Error(err))
    			return err
    		}
    
    	}
    
    	return nil
    }
    

      

  • 相关阅读:
    Mongo 配置文件 [www]
    网络上最完整的网络克隆教程
    perl操作MongoDB
    [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
    maven ClassNotFoundException: org.springframework.web.context.ContextLoader
    执行update操作的话,就会报“Connection is read-only. Queries leading to data modification are not allowed”的异常。
    解压war包
    删除文件夹
    查看端口是否被占用
    springmvc 注解
  • 原文地址:https://www.cnblogs.com/zexin88/p/16186951.html
Copyright © 2020-2023  润新知