【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();
    }
  }


文章小尾巴


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


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


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

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


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


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



目录
相关文章
|
8天前
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
|
23天前
|
SQL 分布式计算 Java
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
30 3
|
25天前
|
Java
java构造方法时对象初始化,实例化,参数赋值
java构造方法时对象初始化,实例化,参数赋值
39 1
|
5天前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
31 1
|
2月前
|
Java 测试技术 程序员
Java零基础(23) - Java赋值运算符,了解一下!
【9月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
53 11
|
3月前
|
XML Java 数据格式
基于Java+freemarker实现动态赋值以及生成Word文档
使用Java和Freemarker技术实现动态数据填充到Word文档模板并生成新的Word文档。
210 0
基于Java+freemarker实现动态赋值以及生成Word文档
|
3月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
4月前
|
Java 测试技术 开发者
day15:Java零基础-赋值运算符
【7月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
30 1
|
5月前
|
SQL 安全 Java
java的SQL注入与XSS攻击
java的SQL注入与XSS攻击
122 2