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