Java的LocalDateTime与mysq的datatime数据类型匹配不了

报错情况:

 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'createTime' of 'class com.itheima.reggie.entity.Employee' with value 'Fri Sep 02 10:40:50 CST 2022' Cause: java.lang.IllegalArgumentException: argument type mismatch] with root cause

具体看这段报错:

Could not set property 'createTime' of 'class com.itheima.reggie.entity.Employee' with value 'Fri Sep 02 10:40:50 CST 2022'

翻译:无法设置类com.itheima.reggie.entity的属性“createTime”。中国夏令时2022年9月2日星期五10:40:50

报错场景:

在MySQL存入的时间:

在Java用LocalDateTime.now()向Mysql传入的是

 Fri Sep 02 10:40:50 CST 2022

问题解析:

暂时确定是不是格式问题。

解决方案:

将传入的LocalDateTime.now()改为new Date()就可以解决。并且将实体类的返回也改成Date就行了

new Date()返回的情况:

LocalDateTime()返回的情况:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java可以通过MySQL提供的JSON函数和驱动操作MySQL中的JSON数据类型。主要步骤如下: 1. 创建MySQL数据库表时,在表结构中使用JSON数据类型,例如: CREATE TABLE user ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), info JSON ); 2. 在Java代码中使用MySQL驱动连接到MySQL数据库。例如: Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password"); 3. 使用JSON函数和语法对MySQL表中的JSON数据进行操作,例如: //插入JSON数据 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO user (name, info) VALUES (?, ?)"); pstmt.setString(1, "Tom"); pstmt.setString(2, "{\"age\": \"20\", \"gender\":\"male\"}"); int rows = pstmt.executeUpdate(); //查询JSON数据 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE id=1"); if(rs.next()){ String infoJson = rs.getString("info"); JSONObject infoObj = new JSONObject(infoJson); String name = rs.getString("name"); int age = infoObj.getInt("age"); String gender = infoObj.getString("gender"); } //更新JSON数据 PreparedStatement updstmt = conn.prepareStatement("UPDATE user SET info=? WHERE id=?"); JSONObject newInfoObj = new JSONObject("{\"age\": \"30\", \"gender\":\"female\"}"); updstmt.setString(1, newInfoObj.toString()); updstmt.setInt(2, 1); uptstmt.executeUpdate(); 总体来说,使用Java操作MySQL JSON数据类型和操作其他类型的数据没有太大的区别,只需要在处理JSON数据时需要使用相关的JSON函数和语法即可。 ### 回答2: Java操作MySQL的JSON类型的数据需要用到MySQL Connector/J。在MySQL 5.7以上的版本中,MySQL支持JSON类型的数据存储和查询。JSON是一种轻量级的数据交换格式,支持各种数据类型包括对象、数组、数字、字符串等等。 首先,需要在MySQL中创建一个JSON类型的字段,例如: CREATE TABLE test ( id INT AUTO_INCREMENT PRIMARY KEY, data JSON ); 然后,使用Java代码连接MySQL的数据库,并且使用JSON对象传输和读取JSON类型的数据。首先,需要导入MySQL Connector/J的包,并且创建MySQL连接: import java.sql.*; import com.mysql.jdbc.*; public class Main { public static void main(String[] args) throws SQLException { try (Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/test?" + "user=root&password=root&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"); Statement stmt = conn.createStatement(); ) { // JSON对象插入到数据库 String jsonData = "{'name': 'John Smith', 'age' : 35, 'email': 'john.smith@example.com'}"; String query = "INSERT INTO test (data) VALUES ('" + jsonData + "')"; stmt.executeUpdate(query); // JSON对象从数据库读取 ResultSet resultSet = stmt.executeQuery("SELECT * FROM test"); while (resultSet.next()) { String data = resultSet.getString("data"); System.out.println(data); // 输出JSON字符串 JsonObject jsonObject = Json.createReader(new StringReader(data)).readObject(); System.out.println(jsonObject.getString("name")); // 输出JSON对象的属性 } } } } 以上代码中,首先使用字符串表示一个JSON对象,然后插入到数据库中。接下来从数据库中读取记录,并转换为JSON对象进行处理。 要注意的是,MySQL Connector/J 6.0以上的版本支持JSON类型的数据传输和查询,但需要使用Java 8以上的版本。如果你是使用的是早期版本,可以使用JSONType插件来支持JSON类型的数据。 ### 回答3: 在MySQL中的JSON类型,是一种允许存储和操作JSON格式数据的数据类型,而对于JSON数据的操作,Java通过使用一些现有的开源库进行实现。 在Java中,我们可以使用很多开源库来操作MySQL中的JSON类型,比如GSON、Jackson和Json-lib等。我们可以选择适合自己使用的库,来读取、解析、修改、添加和删除JSON数据。 GSON是Google提供的一个Java库,用于将Java对象序列化成JSON格式数据,同时也可以将JSON格式数据反序列化为Java对象。在GSON中,通过JsonParser进行JSON字符串的解析,使用JsonObject和JsonArray对已解析的JSON数据进行操作。 Jackson是一个更加流行的Java库,可以解析和操作JSON格式数据。同样,我们可以使用4个主要类:JsonParser、JsonObject、JsonNode和JsonFactory来操作JSON数据。其中,JsonNode用于提取数据,JsonObject和JsonNode用于修改JSON数据,JsonFactory和JsonParser用于生成和解析JSON数据。 Json-lib是另一个常用的Java库,用于将JSON数据与Java对象互相转换。Json-lib支持JSON与Java集合之间的转换,并提供了合并和裁剪JSON数据的功能。在Json-lib中,我们可以使用JSONArray和JSONObject类来操作JSON数据。 无论是使用哪种库,我们必须先将JSON格式数据转换为Java对象,并在完成操作后,将修改后的Java对象转回JSON格式数据,以便将数据保存到MySQL数据库中。 另外,MySQL 5.7版本开始提供了JSON函数,比如JSON_EXTRACT可以解析JSON字符串,并返回所需的JSON路径。可以使用JDBC驱动程序或MyBatis等ORM框架来访问数据库并执行JSON函数。 总结起来,Java操作MySQL的JSON类型数据,可以利用现有的开源库进行操作,并可以使用MySQL 5.7提供的JSON函数来进行解析等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值