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


文章小尾巴


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


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


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

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


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


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



目录
相关文章
|
6月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
273 4
|
6月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
327 5
|
6月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
403 5
|
6月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
331 1
|
6月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
457 1
|
6月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
298 0
|
6月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
332 1
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
3015 1
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
274 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
675 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)