一、前言
今天在开发途中,时间存储到数据库的格式是: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(); } }
文章小尾巴
文章写作、模板、文章小尾巴可参考:《写作“小心思”》
感谢你看到最后,最后再说两点~
①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
(文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)