右耳菌-邓小白的Java架构师的修炼之路

Spring Boot JPA 项目的创建并且根据数据库表生成类

2022-04-26  本文已影响0人  右耳菌

一、创建SpringBoot项目

二、修改pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.lazyfennec</groupId>
    <artifactId>hello-spring-boot-jpa</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello-spring-boot-jpa</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 开启热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

三、修改application.properties文件

#数据库url地址
spring.datasource.url=jdbc:mysql://localhost:3306/cloud_study?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
#数据库用户名密码
spring.datasource.username=####替换账号
spring.datasource.password=####替换密码
#mysql的驱动类,也可以这样写:com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#自动生成开启,让表数据会自动跟随entity类的变化而变化
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#方言选择mysql
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#开启sql打印
spring.jpa.show-sql=true
#开启sql格式化
spring.jpa.properties.hibernate.format_sql=true

四、修改 Project Structrue

五、此时下角出现Persistence小模块

Persistence

六、修复@Column异常爆红

七、创建Repository

package cn.lazyfennec.jpa.repository;

import cn.lazyfennec.jpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * @Author: Neco
 * @Description:
 * @Date: create in 2022/4/26 22:58
 */
public interface UserRepository extends JpaRepository<User, Integer> {

}

八、创建Controller

package cn.lazyfennec.jpa.controller;

import cn.lazyfennec.jpa.entity.User;
import cn.lazyfennec.jpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @Author: Neco
 * @Description:
 * @Date: create in 2022/4/26 22:59
 */
@RestController
public class UserController {

    @Autowired
    private UserRepository userRepository;

    /**
     * 查询所有
     *
     * @return
     */
    @RequestMapping(value = "users", method = RequestMethod.GET)
    public List<User> findAll() {
        return userRepository.findAll();
    }

    /**
     * 根据ID查询对象
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "users/{id}", method = RequestMethod.GET)
    public User findById(@PathVariable int id) {
        return userRepository.findById(id).get();
    }

    /**
     * 保存对象
     *
     * @param user
     * @return
     */
    @RequestMapping(value = "users", method = RequestMethod.POST)
    public User saveUser(User user) {
        return userRepository.save(user);
    }

    /**
     * 修改对象
     *
     * @param user
     * @return
     */
    @RequestMapping(value = "users", method = RequestMethod.PUT)
    public User updateUser(User user) {
        return userRepository.saveAndFlush(user);
    }

    /**
     * 删除对象
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "users/{id}", method = RequestMethod.DELETE)
    public void deleteUser(@PathVariable int id) {
        userRepository.deleteById(id);
    }
}

更多知识,请点击关注查看我的主页信息哦~

上一篇下一篇

猜你喜欢

热点阅读