JavaEE进阶知识学习-----SpringBoot基础知识-4-数据库知识

下面学习的是数据库相关知识

数据库使用的是MySQL,持久化技术使用的就是spring-data-jpa,RESTFul API如下


image

1.pom文件中添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

2.application.yml文件中配置数据库信息和jpa

spring:
  profiles:
    active: prod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dbspringboot
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true

其中的 ddl-auto: create表示每次都会删除原先存在的表,就是说如果表中存在数据,运行程序数据就不存在了。
也可以是 update:会创建表,如果表中有数据,不会删除表。

3.创建一个实体类User,如下所示

@Entity
public class User {
    @Id
    @GeneratedValue
    private Integer id;

    private String userName;

    private Integer age;

    public User(){

    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

当我们再次启动程序的时候时候,dbspringboot数据库中就会多一个user表,其中表字段就是实体类所对应的字段,这是jpa相关的知识,具体将在以后仔细学习和记录。

4.创建UserController

@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping(value = "/users")
    public List<User> userList(){
        return userRepository.findAll();
    }
}

5.UserRepository接口的代码如下

public interface UserRepository extends JpaRepository<User,Integer> {
}

6.访问

使用http://localhost:8082/gire/users访问,如下:

image

7.restful风格的完整代码如下:

@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;

    /**
     * 查询用户列表
     * @return
     */
    @GetMapping(value = "/users")
    public List<User> userList(){
        return userRepository.findAll();
    }

    /**
     * 添加一个用户
     * @param userName
     * @param age
     * @return
     */
    @PostMapping(value = "/users")
    public User addUser(@RequestParam("userName")String userName,@RequestParam("age")Integer age){
        User user = new User();
        user.setUserName(userName);
        user.setAge(15);
        return userRepository.save(user);
    }

    /**
     * 根据id查询用户
     * @return
     */
    @GetMapping(value = "/users/{id}")
    public User getUserById(@PathVariable("id") Integer id){
        return userRepository.findOne(id);
    }

    /**
     * 根基id修改用户
     * @param id
     * @param userName
     * @param age
     * @return
     */
    @PutMapping(value = "/users/{id}")
    public User updateUserById(@PathVariable("id") Integer id,@RequestParam("userName")String userName,@RequestParam("age")Integer age){
        User user = new User();
        user.setId(id);
        user.setAge(age);
        user.setUserName(userName);
        return userRepository.save(user);
    }

    /**
     * 根据id删除用户
     * @param id
     */
    @DeleteMapping(value = "/users{id}")
    public void deleteUserById(@PathVariable("id") Integer id){
        userRepository.delete(id);
    }

    @GetMapping(value = "users/age/{age}")
    public List<User> listUserByAge(@PathVariable("age") Integer age){
        return userRepository.findByAge(age);
    }
}

上述代码中我们也扩展了使用年龄来查询用户,在UserRepository接口中我们扩展了这个方法如下所示:

//通过年龄查询,方法名有规定
public List<User> findByAge(Integer age);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,954评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • PHP_EOL 相当于换行符 windows平台相当于 echo "\r\n"; unix\linux...
    小蛤阅读 862评论 0 0
  • 银龙 2015.03.25 月华初升契仙浓。 虫蝉早鸣草坡东。 落霞明灭尽孤鸿。 红尘茫茫余白雪。 丹涯万里好凭风...
    醉仙王子阅读 113评论 0 0