springboot 整合 JPA 学习

一:

 在pom.xml中引入JPA的依赖、MYSQL数据库的连接器的依赖,代码如下:
        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

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

二:

在application.yml中加上相应的配置,代码如下:
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/spring_cloud?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&serverTimezone=GMT%2B8
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: create #第一次建表用create,后面用update
    show-sql: true
    database-platform: org.hibernate.dialect.MySQLDialect  #Hibernate SQL方言设置

三:

   3.1 创建实体类,代码如下:
import javax.persistence.*;


/**
 * @Entity 表明该类是一个实体类,它和数据库的表名相对应
 */
@Entity
public class User {

    /**
     * @Id 表明该变量对应数据库中的id
     * @GeneratedValue(strategy = GenerationType.IDENTITY) 配置id字段为自增长
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * @Column(nullable = false,unique = true)
     * @Column 表明该变量对应数据库表中的字段
     * nullable = false 不能为空
     * unique = true  唯一约束条件
     */
    @Column(nullable = false,unique = true)
    private String userName;

    @Column
    private String passWord;

    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;
    }
}

3.2  创建DAO,代码如下:
import com.springcloud.learn.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * Long 为主键的类型
 */
public interface UserDao extends JpaRepository<User,Long> {

    User findByUserName(String userName);
}
 该Dao接口继承JpaRepository的接口,继承之后就能对数据库进行读写操作。
 在该接口中写一个findByUserName的方法,传参 userName ,JPA已经实现根据某个字段去查询,所以不需要额外编码。

 3.3  创建Service,代码如下:
@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    public User findByUserName(String userName){
        User user = userDao.findByUserName(userName);
        return user;
    }
}
3.4 创建Controller,代码如下:
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/findByUserName/{userName}")
    public User findByUserName(@PathVariable("userName") String userName){
        User user = userService.findByUserName(userName);
        return user;
    }

}

四:

   运行项目:发现后台会自动生成user表,随便插入一条数据   1,123456,java

在这里插入图片描述

   用浏览器或postman   输入http://localhost:8080/user/findByUserName/java,获取到user对象

在这里插入图片描述

五:

学习中碰到的问题

发布了33 篇原创文章 · 获赞 42 · 访问量 3179

猜你喜欢

转载自blog.csdn.net/weixin_40991408/article/details/103100463
今日推荐