【JAVA】【JDBC】jdbcTemplate.batchUp(),util的Date类和sql的Date类,存在赋值问题。可通过Timestamp转化解决~

简介: 【JAVA】【JDBC】jdbcTemplate.batchUp(),util的Date类和sql的Date类,存在赋值问题。可通过Timestamp转化解决~

一、前言


今天在开发途中,时间存储到数据库的格式是:yyyy/MM/dd HH:mm:ss


而类型是util操作的Date类型,转化是用@JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")


同时,需要jdbc对数据库操作,但是org.springframework.jdbc.core.JdbcTemplate批量处理的方法batchUp()赋值的时间,都是sql的Date类,存在赋值问题,最终选择用用Timestamp()转化解决。


二、代码


package com.nanfangzhe.anpai.test;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
  @Autowired
  private JdbcTemplate jdbcTemplate;
  @Transactional
  public void addUserList(List<UserBean> userList) {
    if (userList == null || userList.size() == 0) {
      log.info("添加失败,无数据不能为空");
      return;
    }
    StringBuffer sb = new StringBuffer();
    sb.append("INSERT INTO t_user(id,username,password,create_time,is_del) VALUES(null,?,?,?,?)");
    log.info("正在添加数据" + sb.toString());
    try {
      jdbcTemplate.batchUpdate(sb.toString(), new BatchPreparedStatementSetter() {
        @Override
        public void setValues(PreparedStatement ps, int i) throws SQLException {
          UserBean user = userList.get(i);
          ps.setString(1, user.getUsername()); // 注意这里是从1开始
          ps.setString(2, user.getPassword());
          ps.setTimestamp(3, new Timestamp(user.getCreateTime().getTime())); // util-Date转为sql-Date
        }
        @Override
        public int getBatchSize() {
          return jsonRecordList.size();
        }
      });
    } catch (DataAccessException e) {
      e.printStackTrace();
    }
  }


文章小尾巴


文章写作、模板、文章小尾巴可参考:《写作“小心思”》


  感谢你看到最后,最后再说两点~


  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。

  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~


  我是南方者,一个热爱计算机更热爱祖国的南方人。


  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)



目录
相关文章
|
20天前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
SQL JSON 分布式计算
|
1天前
|
SQL 分布式计算 Java
|
8天前
|
安全 Java 测试技术
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
【6月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
19 0
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
|
8天前
|
SQL XML Java
java与sql server数据库连接
在Java中连接SQL Server数据库,你通常需要使用JDBC (Java Database Connectivity)。以下是一个简单的步骤指南,帮助你建立连接: ### 1. **下载并
|
12天前
|
SQL Java 数据库连接
Java JDBC连接与操作深度解析
Java JDBC连接与操作深度解析
12 1
|
19天前
|
SQL Java 关系型数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
14 0
|
19天前
|
SQL 存储 Java
Java核心-SQL
Java核心-SQL
6 1
|
19天前
|
SQL Java 关系型数据库
Java核心-JDBC
Java核心-JDBC
6 1
|
20天前
|
SQL Java 关系型数据库
Java之JDBC数据库编程
Java之JDBC数据库编程
14 2