zoukankan      html  css  js  c++  java
  • spring data jpa 学习笔记

     springboot 集成 springData Jpa

    1.在pom.xml添加依赖

    1 <!-- SpringData-Jpa依赖-->
    2 <dependency
    3     <groupId>org.springframework.boot</groupId>
    4     <artifactId>spring-boot-starter-data-jpa</artifactId>
    5 </dependency>
    6 
    7 <!-- mysql驱动:com.mysql.jdbc.Driver -->

    2.application.xml中配置数据库连接信息,自动创建表结构设置

    1 spring.datasource.url=jdbc:mysql://localhost:3306/test
    2 spring.datasource.username=root
    3 spring.datasource.password=123456
    4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    5 spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

    Spring-data-jpa依赖于Hibernate 
    spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置属性,主要作用是:自动创建、更新、验证数据库表结构

    参数配置介绍:
    create:
        每次加载hibernate时都会删除上一次的生成的表,
        然后根据model类重新生成表,哪怕没有改变,
        这是导致数据库表数据丢失的一个重要原因。
    create-drop:
        每次加载hibernate时根据model类生成表,但sessionFactory关闭时,表自动删除。
    update:最常用
        首次加载hibernate时根据model类自动建立起表结构(要先建立数据库)
        以后加载hibernate时根据model类自动更新表结构,即使表结构变了,老数据不删除。
        注意:当部署到服务器后,表结构不会立即建立起来,应用首次运行后才会建立表结构。
    validate:
        每次加载hibernate时,验证创建数据库表结构,和数据库表比较,不创建新表,会插入新值。

    创建User实体,会被映射到数据库 
    hibernate.hbm2ddl.auto,应用启动时自动创建表

     1 @Entity
     2 public class User {
     3 
     4     //没有默认构造会报错
     5     public User(){
     6 
     7     }
     8 
     9     public User(String name, Integer age) {
    10         this.name = name;
    11         this.age = age;
    12     }
    13 
    14     @Id
    15     @GeneratedValue
    16     private Long id;
    17 
    18     @Column(nullable = false)
    19     private String name;
    20 
    21     @Column(nullable = false)
    22     private Integer age;
    23 
    24     public Long getId() {
    25         return id;
    26     }
    27 
    28     public void setId(Long id) {
    29         this.id = id;
    30     }
    31 
    32     public String getName() {
    33         return name;
    34     }
    35 
    36     public void setName(String name) {
    37         this.name = name;
    38     }
    39 
    40     public Integer getAge() {
    41         return age;
    42     }
    43 
    44     public void setAge(Integer age) {
    45         this.age = age;
    46     }
    47 
    48 }

    Dao接口 继承 JpaRepository接口 完成数据访问

    1 public interface UserRepository extends JpaRepository<User, Long> {
    2 
    3     User findByName(String name);
    4 
    5     @Query("from User u where u.name=:name")
    6     User findUser(@Param("name") String name);
    7 
    8 }
  • 相关阅读:
    php字符串
    碰撞检测
    javascript倒计时
    日期
    雪花那个飘
    VBS学习笔记(2): Call造成的麻烦
    VBS学习笔记(3): Array和Collection的不同
    NotepadAutomationDemo的代码V2
    VBS学习笔记(1): Set的取舍
    SQL Server之旅:(三)Attach mdf without ldf
  • 原文地址:https://www.cnblogs.com/go-skill/p/6438417.html
Copyright © 2011-2022 走看看