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

225 阅读1分钟

一、前言

今天在开发途中,时间存储到数据库的格式是: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();
		}
	}

文章小尾巴

文章写作、模板、文章小尾巴可参考:《写作“小心思”》
  感谢你看到最后,最后再说两点~
  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
  我是南方者,一个热爱计算机更热爱祖国的南方人。

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