我用jdbc向mysql插入一条语句用当前时间,可是查询的时候显示的时间不是当前,早了几个小时,怎么回事啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用jdbc向mysql插入一条语句用当前时间,可是查询的时候显示的时间不是当前,早了几个小时,怎么回事啊相关的知识,希望对你有一定的参考价值。
我用的new java.util.Date(),插入的
同台机器,windows 7
如果是同一台的话,你Date()后,直接打开数据库看看,如果存入的时间和你电脑的时间不一样的话,那你就把本地时间改掉然后再Date()试试,如果还是这样的话,应该是程序问题,不过我不知道怎么解决,如果时间一样的话,那就是电脑的问题,跟你以后用这个程序影响不大。
你这个问题还真少见啊。解决了的话,也顺便给我留个言啊。谢谢啦。祝你好运。 参考技术A 因为你的计算机的时间比北京时间早了几个小时。。。
调一下计算机的本地时间吧。。。
呵呵。。。。
祝你成功哈。。 参考技术B 没碰到过,用java.sql.Date();试试。
不行的话可以用数据库自带的函数,将你的时间字段默认为当前时间。 参考技术C 如果程序是在服务器上运行,那时间就是服务器的时间
使用JDBC向数据库中插入一条数据(第一次修改版)
增加了一个Tools类,放了一些常用的工具
package com.JDBC.java; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * JDBC 的工具类 */ public class JDBCTools { /** * 关闭Statement,Connection * * @param statement * @param connection */ public static void release(Statement statement, Connection connection) { if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 获取数据库连接的方法 * * @return * @throws Exception */ public static Connection getConnection() { // 准备连接数据库的四个字符串 // 驱动的全类名 String driverClass = null; String jdbcUrl = null; String user = null; String password = null; String jdbcName = null; // 读取jdbcName.properties文件 InputStream inStream = JDBCTools.class.getClassLoader().getResourceAsStream("properties/jdbcName.properties"); Properties propertiesOfName = new Properties(); try { propertiesOfName.load(inStream); } catch (IOException e) { e.printStackTrace(); } jdbcName = propertiesOfName.getProperty("jdbcName"); // 读取需要的properties 文件 InputStream in = JDBCTools.class.getClassLoader().getResourceAsStream("properties/" + jdbcName + ".properties"); Properties properties = new Properties(); try { properties.load(in); } catch (IOException e) { e.printStackTrace(); } driverClass = properties.getProperty("driver"); jdbcUrl = properties.getProperty("jdbcUrl"); user = properties.getProperty("user"); password = properties.getProperty("password"); // 加载数据库驱动程序(注册驱动) try { Class.forName(driverClass); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection connection = null; try { connection = DriverManager.getConnection(jdbcUrl, user, password); } catch (SQLException e) { e.printStackTrace(); } return connection; } }
然后写了一个比较通用的update方法
/** * 通用的更新方法:包括INSERT/UPDATE/DELETE * @param sql */ public void update(String sql){ Connection connection = null; Statement statement = null; try { connection = JDBCTools.getConnection(); statement = connection.createStatement(); statement.executeUpdate(sql); }catch (Exception e) { e.printStackTrace(); }finally{ JDBCTools.release(statement, connection); } }
懒得写测试类,肯定好使,相信我~
以上是关于我用jdbc向mysql插入一条语句用当前时间,可是查询的时候显示的时间不是当前,早了几个小时,怎么回事啊的主要内容,如果未能解决你的问题,请参考以下文章
用Navicat for MySQL向l数据库插入一条用户信息,密码加密怎么加。
MYSQL 之 JDBC: 增删改查通过Statement执行更新操作