mysql jdbcTemplate访问
阅读原文时间:2023年07月12日阅读:1

String sql = "select * from xxx_photo_info where user_id in (:userIds)";

userIds从dao传过来时必须是Collection类型(List或者Set),分割字符串得到,而不能直接传字符串,否则会报Error : Truncated incorrect DOUBLE value

JdbcTemplate和NamedParameterJdbcTemplate的区别:

NamedParameterJdbcTemplate实例的update方法有个坑。

如果更改前后字段的值是一样的,则update()方法返回值是0。但是update时根据where条件筛选不到记录也返回0,所以返回0时不一定是匹配不到记录。曾经开发某手青某版时,做过一个操作,如果update()等于0,就insert。

update语句是:update xxx_photo_manager_edit set title= :title, update_time = :updateTime where photo_id= :photoId

insert 语句是:insert into xxx_photo_manager_edit(cover_timestamp, photo_id, caption, cover_url_key, title, create_time) values (:coverTimestamp, :photoId, :caption, :coverUrlKey, :title, :createTime)

xxx_photo_manager_edit表ddl语句是:

create table xxx_photo_manager_edit(
    id bigint unsigned primary key auto_increment comment '主键id',
    photo_id bigint unsigned not null comment '作品id',
    caption varchar(256) comment '管理员写的视频简介',
    create_time bigint unsigned not null comment '创建时间',
    unique key `uniq_photo_id` (`photo_id`)
)engine = innodb default charset=utf8mb4 collate=utf8mb4_bin;