SrpingBoot整合SpringDataJpa

本文分享了一位开发者在公司系统中尝试使用JPA遇到难题,却在家中的环境中迅速搭建成功的经历。通过对比,作者决定深入研究Spring Data JPA,以彻底理解并解决在公司遇到的BeanCreatException异常问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天要做一个新系统,想着用下Jpa,以前都是在别人搭好的框架上整的,网上看了一顿教程,感觉很简单我就开始了,没想到花了我漫长的五小时,直到下班也没有解决问题,我一回到家,我就在家里的电脑上开整了,三分钟一个demo就出来了,虽然到现在我依然不知道公司的为啥会失败,但是把这次在家的过程记录下来,留作参考。

pom文件引入jpa

在这里插入图片描述

配置文件里配置数据库

# 数据库的配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

然后来一个绑定了数据库表的实体

package com.wudiqiang.entity;

import javax.persistence.*;

/**
 * @Author: 着凉的皮皮虾
 * @Date: 2019/7/31 22:57
 */

@Table(name = "user")
@Entity
public class User {

    @Id
    @GeneratedValue
    private Long id;

    private String username;

    private String password;

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public Long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

这里据说是需要一个无参的构造函数的,具体为啥目前不是很清楚

接下来,继承Repository

package com.wudiqiang.dao;

import com.wudiqiang.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

/**
 * @Author: 着凉的皮皮虾
 * @Date: 2019/7/31 23:00
 */

@Repository
public interface UserDao extends JpaRepository<User, Long> {

    User findFirstById(Long id);
}

紧接着,注入刚才写的接口
package com.wudiqiang.controller;

import com.wudiqiang.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: 着凉的皮皮虾
 * @Date: 2019/7/31 23:01
 */
@RequestMapping("/jpa")
@RestController
public class JpaTest {


    @Autowired
    private UserDao userDao;

    @GetMapping("/get")
    public String get() {
        return userDao.findFirstById(1L).toString();
    }
}

配置到这里就算完成了,启动程序,打开浏览器

在这里插入图片描述
在公司折磨了我四五个小时的问题,就这么解决了?
没有一丝一毫的波澜就解决了。
但是这种感觉让我非常不爽,我甚至不清楚它内部到底是怎么运行的,这种没有掌控的感觉,是最让人难受又无助的。我决定花时间研究一下SpringDataJpa,争取从根本上理解为啥子会出现类似于entityManagerFactory这个BeanCreatException的异常的情况,以及最终解决公司的系统上发生的问题。
当然,在家本地写的这个东西就是用来测试的,大家不要在意没配置数据库连接池这些个细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值