Spring Boot 之 Spring Data JPA(牛刀小试)

Spring Boot 下JPA的简单使用
1:创建Spring Boot 项目
2:加入依赖

        JPA依赖包
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        MYSQL 驱动依赖包
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
        WEB 依赖包
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

3:配置数据源和JPA有关的配置

#DB Configuration:
spring.datasource.driverClassName =com.mysql.jdbc.Driver
spring.datasource.url = jdbc\:mysql\://127.0.0.1\:3306/qr_pgjy
spring.datasource.username = root
spring.datasource.password = root

JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

注意:hibernate 根据实体类自动维护数据库表结构的功能,可通过spring.jpa.hibernate.ddl-auto来配置,有下列可选选项。
create:启动时删除上一次生成的表,并根据实体类生成表,表中数据会被清空
create-drop:启动时根据实体类生成表,sessionFactory关闭时表会被删除。
update:启动时根据实体类生成表,当实体类属性变动的时候,表结构也会更新,在初期开发阶段使用此选项
validate:启动时验证实体类和数据表是否一致,在我们数据结构稳定时采用此选项。
none:不采取任何措施。
spring.jpa.show-sql:用来设置hibernate操作时候在控制台显示其真实的sql语句。
4:定义实体类映射

package com.example;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

@Entity//该注解指明这是一个和数据库表映射的实体类
@Table(name="qr_user")//映射的表名
public class User {
    private static final long serialVersionUID = 1L;
    @Id
    @NotNull//非空
    @GeneratedValue(strategy = GenerationType.AUTO)//自增
    private int id;
    @NotNull
    @Column(name="phone")//映射字段,如果这里的字段名和数据库字段名一致,可以不写。
    private String phone;

    @Column(name="email")
    private String email;

    @Column(name="account")
    private String account;

    @Column(name="password")
    private String password;

    @Column(name="name")
    private String name;

    @Column(name="nickname")
    private String nickname;

    @Column(name="sex")
    private int sex;
    @Column(name="birth")
    private int birth;

    @Column(name="status")
    private int status;

    @Column(name="headpic")
    private String headpic;

    @Column(name="regtime")
    private long regtime;

    @Column(name="schoolid")
    private int schoolid;

    @Column(name="province")
    private String province;//省
    @Column(name="city")
    private String city;//市
    @Column(name="buy_count")
    private int buy_count;//购买数量
    //幼儿园名称
    @Column(name="openid")
    private String openid;//用户唯一标识

  。。。。。get,set方法省略。。。。。

}

5:定义数据访问接口

public interface UserRepository extends JpaRepository<User,Long>{
    User findByPhone(String phone);
    List<User> findByCity(String city);
    User findByPhoneAndCity(String phone,String city);

}

6:定义controller

package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @package_name: com.example
 * @class_name: DataController
 * @author: cullinans
 * @data: 17-1-6
 * @desc:
 */
@RestController
public class DataController {
    @Autowired
    UserRepository userRepository;
    @RequestMapping("/findAll")
    public List<User> findAll(){
        List<User> user=userRepository.findAll();
        return user;
    }
    @RequestMapping("/findByPhone")
    public User findByPhone(String phone){
        return userRepository.findByPhone(phone);
    }
    @RequestMapping("/findByCity")
    public List<User> findByCity(String city){
        return userRepository.findByCity(city);
    }

}

7:运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值