美文网首页右耳菌-邓小白的Java架构师的修炼之路
Spring Boot JPA 项目的创建并且根据数据库表生成类

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

作者: 右耳菌 | 来源:发表于2022-04-26 22:56 被阅读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

    • 点击file->Project Structrue->Modules->JPA


      第一步
    • 点击右上角 “+” 号,选persistence.xml,然后确定


      第二步

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

    Persistence
    • 新建package -> cn.lazyfennec.jpa.entity
    • 右键hello-spring-boot-jpa -> Generate Persistence Mapping -> By Database Schema
    • 修改参数
      • 删除prefix和suffix(表示生成的实体类不添加前缀和后缀)
      • 设置生成的实体类所在的包 cn.lazyfennec.jpa.entity
      • 选中要生成反向生成类的表,这里选择user


        image.png
    • 点击OK


      生成的User类

    六、修复@Column异常爆红

    • 光标置于User类中的标红的字段中


      标红的字段
    • ALT+CTRL 或点击左前方的红色灯泡,选中Assign Data Sources
    • 右侧选中配置的datasource,点击OK


      选中配置的datasource

    七、创建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);
        }
    }
    

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

    相关文章

      网友评论

        本文标题:Spring Boot JPA 项目的创建并且根据数据库表生成类

        本文链接:https://www.haomeiwen.com/subject/vynhyrtx.html