SpringBoot学习:整合JPA
程序员文章站
2022-04-22 08:02:35
...
引入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
配置数据源
spring:
datasource:
url: jdbc:mysql://192.168.1.14:3306/jpa
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
编写一个实体类User
private Integer id;
private String name;
private String email;
使用JPA注解将实体类标注
// 使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "tb1_user") //告诉JPA这个实体类和数据库中的那个表映射;如果省略表名就是类名小写(user)
public class User {
@Id //id是主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增
private Integer id;
@Column(name = "last_name",length = 50) //这是和数据表对应的一个列;数据表中属性名是last_name,字符长度为50
private String name;
@Column // 省略默认列名就是属性名
private String email;
编写UserRepository
// 继承JpaRepository来完成对数据库的操作
// 泛型中第一个参数为实体类,第二个参数为主键
public interface UserRepository extends JpaRepository<User,Integer> {
}
JPA相关配置
spring:
jpa:
hibernate:
ddl-auto: update #定义数据表的生成策略 update:更新或者创建数据表
show-sql: true # 再控制台显示sql语句
启动springboot后,可以看到数据库中表被创建出来了
编写controller测试
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id){
Optional<User> byId = userRepository.findById(id);
User user = byId.orElse(null);
return user;
}
@GetMapping("/user")
public User insertUser(User user){
User save = userRepository.save(user);
return save;
}
}
访问 http://localhost:8080/user?lastName=zhangsan&email=aa 插入一条数据
打开数据库表,可以看到数据插入成功
访问 http://localhost:8080/user/1 查询id为1的User信息
推荐阅读
-
SpringBoot整合Elasticsearch7.2.0的实现方法
-
SpringBoot整合UEditor的示例代码
-
完整SpringBoot Cache整合redis缓存(二)
-
详解mall整合SpringBoot+MyBatis搭建基本骨架
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例
-
SpringBoot 整合Redis 数据库的方法
-
springboot整合Quartz定时任务
-
SpringBoot整合MyBatisPlus配置动态数据源的方法
-
Springboot整合Urule的方法步骤
-
详解springboot整合ehcache实现缓存机制