Spring Boot Jpa实现简单的查询findByUsernameAndPassword

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/xuyonjin
JPA

        JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

        JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。

        JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,应该说无人能出其右。从功能上来说,JPA就是Hibernate功能的一个子集。

Idea 中Spring boot 整合JPA 相对来说,比较简单,只要选择JPA就行,根据以下步骤创建一个简单的示例

1.如图,选择新项目,选择Spring Initializr,点击Next

Spring Boot Jpa实现简单的查询findByUsernameAndPassword_第1张图片

2.如图,设置好Group和Artifact,点击Next

Spring Boot Jpa实现简单的查询findByUsernameAndPassword_第2张图片

3.如图,选择Spring Boot 2.0.0,选择Web,JPA和MySQL,点击Next

Spring Boot Jpa实现简单的查询findByUsernameAndPassword_第3张图片

4.如图,设置好项目名称,点击Finish

Spring Boot Jpa实现简单的查询findByUsernameAndPassword_第4张图片

5.如图创建好的项目

Spring Boot Jpa实现简单的查询findByUsernameAndPassword_第5张图片

6.创建实体类Userinfo,对应表名为userinfo
package com.yk.findbyusername.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;

@Entity
public class Userinfo implements Serializable {
    @Id
    @GeneratedValue
    private long id;
    private String username;
    private String password;
    private Integer state;

    public long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    @Override
    public String toString() {
        return "Userinfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", state=" + state +
                '}';
    }
}
7.创建接口UserinfoRepository,继承JpaRepository,定义方法findByUsername和findByUsernameAndPassword;
package com.yk.findbyusername.reposiroty;
import com.yk.findbyusername.domain.Userinfo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserinfoRepository extends JpaRepository {
    public Userinfo findByUsername(String username);
    public Userinfo findByUsernameAndPassword(String username,String password);
}
8.创建控制器类UserinfoController

package com.yk.findbyusername.controller;

import com.yk.findbyusername.domain.Userinfo;

import com.yk.findbyusername.reposiroty.UserinfoRepository;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value = "/findby")
public class UserinfoController {

    @Autowired
    private UserinfoRepository userinfoRepository;
    @RequestMapping(value = "/username")
    public Userinfo findByUsername()
    {
        Userinfo userinfo = userinfoRepository.findByUsername("yk001");
        System.out.println(userinfo.toString());
        return userinfo;
    }
    @RequestMapping(value = "/usernameandpassword")
    public Userinfo findByUsernameAndPassword()
    {
        Userinfo userinfo = userinfoRepository.findByUsernameAndPassword("yk002","pw002");
        System.out.println(userinfo.toString());
        return  userinfo;
    }
}

9.配置数据源,在application.properties文件配置:
server.port=80
        
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=true
spring.datasource.username=root
spring.datasource.password=mysql
        
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto=update
10.MySQL中创建数据库springboot,运行一遍程序,会自动创建userinfo表

   insert into userinfo(username, password, state) values('yk001', 'pw001', 11)

insert into userinfo(username, password, state) values('yk002', 'pw002', 12)
执行上面的查询,在表中插入两条数据

11.测试:

浏览器输入http://localhost/findby/username,有以下信息输出

Hibernate: select userinfo0_.id as id1_0_, userinfo0_.password as password2_0_, userinfo0_.state as state3_0_, userinfo0_.username as username4_0_ from userinfo userinfo0_ where userinfo0_.username=?

Userinfo{id=1, username='yk001', password='pw001', state=11}

浏览器输入http://localhost/findby/usernameandpassword,有以下信息输出

Hibernate: select userinfo0_.id as id1_0_, userinfo0_.password as password2_0_, userinfo0_.state as state3_0_, userinfo0_.username as username4_0_ from userinfo userinfo0_ where userinfo0_.username=? and userinfo0_.password=?
Userinfo{id=2, username='yk002', password='pw002', state=12}


12.源码下载:

https://github.com/xuyonjin/spring-boot-jpa-findbyusername.git

 
  



你可能感兴趣的:(spring,boot)