• SpringBoot 整合 JPA


    springboot 整合 jpa

    pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <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>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </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>
    

    application.properties

    # 数据库信息
    spring.datasource.drive-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql:///jpa_db?serverTimezone=GMT%2B8
    spring.datasource.username=root
    spring.datasource.password=root
    
    # 配置 jpa 相关信息
    spring.jpa.database=mysql
    spring.jpa.show-sql=true
    spring.jpa.generate-ddl=true
    spring.jpa.hibernate.ddl-auto=create
    

    实体类

    package com.mozq.boot.jpa.domain;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name="tab_customer")
    public class Customer {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long custId;
        @Column
        private String custName;
        @Column
        private String custSource;
        @Column
        private String custLevel;
        @Column
        private String custIndustry;
        @Column
        private String custPhone;
        @Column
        private String custAddress;
    }
    

    Dao 接口

    package com.mozq.boot.jpa.dao;
    
    import com.mozq.boot.jpa.domain.Customer;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    /*
        操作 Customer 的接口
     */
    public interface CustomerDao extends JpaRepository<Customer, Long> {}
    

    启动类

    package com.mozq.boot.jpa;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class BootJpaDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(BootJpaDemoApplication.class, args);
        }
    
    }
    

    测试类

    package com.mozq.boot.jpa.dao;
    
    import com.mozq.boot.jpa.BootJpaDemoApplication;
    import com.mozq.boot.jpa.domain.Customer;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = BootJpaDemoApplication.class)
    public class CustomerDaoTest {
    
        @Autowired
        private CustomerDao customerDao;
    
        @Test
        public void testSave(){
            Customer customer = new Customer();
            customer.setCustName("大乔");
            customerDao.save(customer);
        }
    
    }
    

    Bugs

    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' available
    原因:
    	org.hibernate:hibernate-core:5.3.10.Final jar 包报红,将仓库相应目录删除,还是报红,重启 idea 好了。
    
    java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    原因:时区未指定或者表示多个时区
    方案:
    	spring.datasource.url=jdbc:mysql:///jpa_db?serverTimezone=GMT%2B8
    	encodeURIComponent("GMT+8"); "GMT%2B8"
    
  • 相关阅读:
    Flink Task 并行度
    flink笔记(三) flink架构及运行方式
    Flink笔记(二) DataStream Operator(数据流操作)
    poj 1463 Strategic game
    2014年3月29日小记
    AC自动机学习
    hdu 1028 Ignatius and the Princess III
    hdu 1542 Atlantis
    hdu 1575 Tr A
    hdu 4193 Non-negative Partial Sums
  • 原文地址:https://www.cnblogs.com/mozq/p/11288672.html
Copyright © 2020-2023  润新知