美文网首页
JavaEE进阶知识学习-----SpringBoot基础知识-

JavaEE进阶知识学习-----SpringBoot基础知识-

作者: Waldeinsamkeit4 | 来源:发表于2018-02-28 17:23 被阅读0次

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

    数据库使用的是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);
    

    相关文章

      网友评论

          本文标题:JavaEE进阶知识学习-----SpringBoot基础知识-

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