当前位置:网站首页>数据访问之JPA
数据访问之JPA
2022-07-21 18:16:00 【苏尧木子】
JPA(Java persistence API)是一个 Java应用程序接口规范,Spring + Hibernate 常常被称为 Java Web 应用人气最旺的框架组合。
持久化,在这里包括三个层面的意思:
1).API 本身,定义在 javax.persistence 包内
2).Java持久化查询语言 (JPQL)
3).对象/关系 元数据
持久化实体是一个轻量级的 Java 类,其状态通常持久地保存到关系数据库的表中。 这种实体的实例对应于表中的各个行。 实体之间通常有关系,这些关系通过对象/关系元数据表示。 可以在实体类文件中直接使用注释来指定这种关系,也可以在随应用程序分发的单独XML描述文件中指定。
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易地掌握。JPA基于非侵入式原则设计,因此可以很容易地和其它框架或者容器集成。
所需依赖:
<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>
application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/jdbc_test?characterEncoding=utf8&serverTimezone=America/Chicago
username: root
password: lxkkxl
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
#控制台显示sql
show-sql: true
server:
port: 8090
User类:
@Entity//告诉jpa这是一个实体类(和数据表映射的类)
@Table(name="user")//指定与那个数据表映射,如果省略则默认表名就是user
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键
private Integer id;
@Column(name="last_name",length = 50)//这是和数据表对应的一个列
private String lastname;
@Column//省略则默认列明就是属性名
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
UserRepository类:
//以类似的方式创建接口PostRepository。不要实现此接口。
// Spring Data将创建它的实现。
public interface UserRepository extends JpaRepository<User,Integer> {//主键的类型
}
UserControllerler类:
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id){
User user = userRepository.getOne(id);
return user;
}
@GetMapping("/user")
public User insertUser(User user){
User save = userRepository.save(user);
return save;
}
}
源码已上传*github:JPA_demo
边栏推荐
猜你喜欢
随机推荐
[Datasheet] PHY LAN8720网络芯片解读
关于线程 thread (1)概念简介
27.最长递增子序列
粘性定位(sticky)详解
本地存储(localStorage)
正则
setAttribute、getAttribute、removeAttribute
File read / write operation (files under the specified file directory)
SwipeMenuRecyclerView 的用法
EAS BOS 序时簿动态列的实现
EAS extended report data package (from entry to proficiency)
EAS Web BIM Start Access prompt 500 Error
SqlServer将数据库中的表复制到另一个数据库
Permission
Flyio insensitive refresh token
High frequency leetcode deep search part: 98 Validate binary search tree
让盒子居中且距离浏览器左右各100px做动画
Oracle error list
High frequency leetcode deep search part: 297 Serialization and deserialization of binary tree
Biochemistry review question I · protein