gpt4 book ai didi

java.sql.时间戳值; Spring-boot项目中的嵌套异常是java.sql.SQLDataException

转载 作者:行者123 更新时间:2023-11-30 05:34:50 25 4
gpt4 key购买 nike

我正在用spring boots构建一个项目,通过控制检查互联网的状态,并且正在进行数据库连接。

我正在尝试执行“MyBatis”,但出现错误。

这是我的目录列表: directories

监控数据应用程序.java

package com.smartcore.mn.springboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = "com.smartcore.mn.springboot")
public class MinitoringdataApplication {

public static void main(String[] args) {
SpringApplication.run(MinitoringdataApplication.class, args);
}

}

ServletInitializer.java

package com.smartcore.mn.springboot;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MinitoringdataApplication.class);
}

}

ApiController.java

package com.smartcore.mn.springboot.controller;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.smartcore.mn.springboot.model.Member;
import com.smartcore.mn.springboot.service.MemberService;

@RestController
public class ApiController {

@Autowired
MemberService memberService;


@GetMapping(path = "/helloWorld")
public String helloWorld() {
return LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
}

@GetMapping(path = "/db")
public List<Member> selectAllMember() {
List<Member> members = memberService.getAllMember();
return members;
}

}

MemberMapper.interface

package com.smartcore.mn.springboot.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.smartcore.mn.springboot.model.Member;

@Mapper
public interface MemberMapper {
Member selectMemberById(Long id);
List<Member> selectAllMember();
void insertMember(Member member);

}

Member.java

package com.smartcore.mn.springboot.model;

import java.util.Date;

import org.apache.ibatis.type.Alias;

import com.smartcore.mn.springboot.Exception.IdPasswordNotMatchingException;

import lombok.Data;


@Data
@Alias("member")
public class Member {

private Long id;
private String email;
private String password;
private String name;
private Date registerDate;

public Member(String email, String password, String name, Date registerDate) {
this.email = email;
this.password = password;
this.name = name;
this.registerDate = registerDate;
}

public void setId(Long id) {
this.id = id;
}

public Long getId() {
return id;
}

public String getEmail() {
return email;
}

public String getPassword() {
return password;
}

public String getName() {
return name;
}

public Date getRegisterDate() {
return registerDate;
}

public void changePassword(String oldPassword, String newPassword) {
if (!password.equals(oldPassword))
throw new IdPasswordNotMatchingException();
this.password = newPassword;
}

}

MemberService.java

package com.smartcore.mn.springboot.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.smartcore.mn.springboot.mapper.MemberMapper;
import com.smartcore.mn.springboot.model.Member;

@Service
@Transactional
public class MemberService {

@Autowired
MemberMapper memberMapper;

public Member getMemberById(Long id) {
return memberMapper.selectMemberById(id);
}

public List<Member> getAllMember() {
return memberMapper.selectAllMember();
}

public void addMember(Member member) {
memberMapper.insertMember(member);
}

}

application.properties

spring.datasource.url=jdbc:mysql://localhost/mydb?serverTimezone=UTC&autoReconnection=true
spring.datasource.username=mydb
spring.datasource.password=mydb
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package=com.smartcore.mn.springboot.model
logging.level.com.smartcore.mn.springboot.mapper=TRACE

xmlfile

MemberMapper.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.smartcore.mn.springboot.mapper.MemberMapper">

<select id="selectMemberById" resultType="member">
SELECT *
FROM MEMBER
WHERE ID = #{id}
</select>

<select id="selectAllMember" resultType="member">
SELECT *
FROM MEMBER
</select>

<insert id="insertMember">
INSERT INTO MEMBER (EMAIL, PASSWORD, NAME, REGDATE)
VALUES (#{email}, #{password}, #{name}, #{registerDate})
</insert>

</mapper>

<强> http://localhost:8080/helloworld 工作正常。

但是 http://localhost:8080/db 看到错误

db connect

我需要你的解决方案。预先感谢您。

我的 table

enter image description here

最佳答案

正如我们在评论中的讨论中提到的,MyBatis 正在尝试将结果集中的 NAME 列映射到 Member 中的 registerDate 参数> 构造函数。

由于您没有为每个字段指定paramName,构造函数中arg元素的顺序很容易出错。

尝试使用正确的有序参数将结果集映射到构造函数:

成员(member)(字符串电子邮件、字符串密码、字符串名称、日期注册日期) 应匹配 SELECT EMAIL, PASSWORD, NAME, REGDATE FROM MEMBER

成员(长 ID、字符串电子邮件、字符串密码、字符串名称、日期注册日期) 应匹配 SELECT * FROM MEMBER

关于java.sql.时间戳值; Spring-boot项目中的嵌套异常是java.sql.SQLDataException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56861985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com