java - 时间戳数据库值在处理前显示为已处理
问题描述
通常这只是我自己没有SimpleDateFormatter
正确使用,但是在将Timestamp
字段从数据库中取出的过程中,在任何处理发生之前,在最低级别,时间戳值显示为
2017 年 11 月 10 日 10:19:46
看起来它已经被作为其他东西处理了。我期待 YYYY-MM-dd HH:mm:ss 作为格式。
MySql 数据库列是some_column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
,加载这个值的代码在这里;
public Object loadSingle(DBInterface obj, String operator, PreparedStatement ps)
{
Object results = null;
ResultSet rs = null;
try
{
Field[] field = obj.getClass().getDeclaredFields();
rs = ps.executeQuery();
Object working = null;
if (rs.next())
{
working = obj.getClass().newInstance();
for (Field fieldLoop : field)
{
if (!Modifier.isPrivate(fieldLoop.getModifiers()))
{
fieldLoop.setAccessible(true);
if (fieldLoop.getType().getName().compareTo("java.lang.String") == 0)
{
fieldLoop.set(working, rs.getString(fieldLoop.getName()));
}
else
{
if (fieldLoop.getType().getName().compareTo("java.util.Date") == 0)
{
fieldLoop.set(working, rs.getDate(fieldLoop.getName()));
}
else
{
if (fieldLoop.getType().getName().compareTo("java.sql.Timestamp") == 0)
{
fieldLoop.set(working, rs.getTimestamp(fieldLoop.getName()));
}
我正在使用的所有其他对象,包括许多具有Timestamp
值的对象都处理得很好。我已经对此进行了调试,并且可以看到在 . 谁能告诉我为什么会这样?
========编辑
它实际执行的查询是;
String sql = "SELECT * FROM sometable WHERE id = ? ";
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
解决方案
推荐阅读
- laravel - Xamarin.forms 更新后,来自 Api 的 json 数据出现问题
- python - 无法让硒单击按钮
- java - 如何在java中并行运行多个方法并从每个方法中获取输出
- rust - 更有效的替代 thread_local!和lazy_static?
- java - 如何在 Spring Boot JPA 中获取选择性列?
- python - Python:更改日志记录级别的数值
- mysql - 我在 MySQL 中删除了“performance_schema”
- python-3.x - 解析数据框列的内容
- c#-4.0 - 来自 HRESULT 的 Esri.arcgis.server 异常:GISServerConnectionClass() 中的 0x80040111 (CLASS_E_CLASSNOTAVAILABLE)
- javascript - 将回调作为值传递和作为扩展箭头函数传递之间的区别