JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
平常项目开发中用的较多的是 MyBatis 和 MyBatis-Plus,Jpa 使用较少,本篇就对在 SpringBoot 中使用 JPA 作为数据持久化框架做如下说明:
org.springframework.boot spring-boot-starter-web
mysql mysql-connector-java runtime
org.projectlombok lombok
org.springframework.boot spring-boot-starter-data-jpa
server:port: 8080spring:datasource:url: jdbc:mysql://127.0.0.1:3306/jpa-demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456jpa:hibernate:# 自动创建表ddl-auto: update
ddl-auto 开启后,每次启动会对数据表结构进行检查,只会新增表格,新增字段,并不会改变原有的字段
import lombok.Data;import javax.persistence.*;@Table(name = "sys_user")
@Entity
@Data
public class SysUser {/*** 主键-自增*/@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(columnDefinition = "varchar(12) comment '用户名称'")private String name;@Column(columnDefinition = "varchar(50) comment '邮箱'")private String email;
}
import com.biz.jpa.entity.SysUser;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;@Repository
public interface SysUserRepository extends JpaRepository {
}
import com.biz.jpa.dao.SysUserRepository;
import com.biz.jpa.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class SysUserService {@Autowiredprivate SysUserRepository sysUserRepository;public SysUser saveUser() {SysUser sysUser = new SysUser();sysUser.setName("Asurplus");sysUser.setEmail("123456@qq.com");sysUserRepository.save(sysUser);return sysUser;}
}
我们向 sys_user 表中插入一条数据,由于主键自增,我们无需设置主键,插入成功后,主键会会写到对象中
import com.biz.jpa.entity.SysUser;
import com.biz.jpa.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class SysUserController {@Autowiredprivate SysUserService sysUserService;@GetMapping("save")public SysUser save() {return sysUserService.saveUser();}
}
访问:
http://localhost:8080/save
返回:
{"id":1,"name":"Asurplus","email":"123456@qq.com"}
插入成功,并返回了自增的主键
Jpa 的集成到这里就完成了,更多 Jpa 的用法需要在实际的项目开发中去探索
如您在阅读中发现不足,欢迎留言!!!