使用Mybatis从数据库中查出时间显示时分后发现不符合

博主分享了一天寻找解决方案的经历,问题在于使用SimpleDateFormat格式化时间后无法正确插入数据库。最终发现是数据库URL的时区设置问题,通过将`serverTimezone`参数改为`GMT%2B8`成功解决。博客提醒读者在遇到类似问题时,应关注数据库连接参数。
摘要由CSDN通过智能技术生成

问题介绍

这个问题困扰我了整整一天,我用Google搜了一页又一页都没有找到解决方案。大部分都是使用SimpleDateFormat,设置时区后再格式化。但是不论我怎么选择时区,问题并没有解决。在一步步排查后,我选择在google上搜索mybaits的时间插入问题,终于在这个链接下找到了答案,好人一生平安!

问题解决

一句话:将数据库的url的时区改成serverTimezone=GMT%2B8

众所周知,想要操作数据库需要使用jdbc并设置配置文件,整合SMM的话,配置文件一般作为resource目录下的jdbc.properties文件。一般的数据库连接地址都是:jdbc:mysql://localhost:3306/my_blog?serverTimezone=GMT&characterEncoding=utf-8,这段url是我从网上copy来的,我对数据库的url连接参数并不够了解。所以短时间没有发现问题的解决办法。

不管怎么说,终于解决了,在此留作纪念,希望以后有人再犯的话,能够早点排除。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一种Java持久化框架,它可以将SQL语句映射到Java方法,方便我们查询数据库。下面是使用MyBatis实现数据库查询的步骤: 1. 添加MyBatis依赖 在pom.xml文件添加以下依赖: ``` <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> ``` 2. 配置MyBatis 在resources目录下创建mybatis-config.xml文件,并添加以下内容: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/MyMapper.xml"/> </mappers> </configuration> ``` 其,driver、url、username和password是数据库连接信息,需要根据实际情况修改。 3. 创建Mapper 在com.example.mapper包下创建MyMapper.java接口,并添加以下内容: ``` public interface MyMapper { List<User> getAllUsers(); } ``` 其,User是实体类,表示数据库的用户表。 4. 创建Mapper XML文件 在com.example.mapper包下创建MyMapper.xml文件,并添加以下内容: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.MyMapper"> <select id="getAllUsers" resultType="com.example.entity.User"> select * from user </select> </mapper> ``` 其,resultType指定查询结果的类型。 5. 编写代码 在代码使用MyBatis查询数据库,示例如下: ``` SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); try (SqlSession sqlSession = sessionFactory.openSession()) { MyMapper myMapper = sqlSession.getMapper(MyMapper.class); List<User> users = myMapper.getAllUsers(); for (User user : users) { System.out.println(user); } } ``` 其,SqlSessionFactory是MyBatis的核心类,用于创建SqlSession对象。SqlSession是与数据库交互的核心类,通过getMapper方法获取Mapper对象,并调用其的方法查询数据库。 以上就是使用MyBatis实现数据库查询的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值