SpringBoot 使用 JPA 操作 PostgreSQL 数据库
目录
一、前言
JPA简介
- Java Persistence API (JPA) 是一种基于 ORM (Object-Relational Mapping) 技术的 Java EE 规范。它主要用于将 Java 对象映射到关系型数据库中,以便于对数据进行持久化操作。
- JPA 主要由三个部分组成,分别是 Entity、EntityManager 和 Query。其中 Entity 用于描述 Java 对象和数据库表之间的映射关系;EntityManager 用于管理实体对象的生命周期和完成实体对象与数据库之间的操作;Query 用于查询数据。
PostgreSQL简介
- PostgreSQL 是一个功能强大的开源对象关系型数据库系统,他使用和扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。对比时下最流行的 MySQL 来说,PostGreSQL 拥有更灵活,更高度兼容标准的一些特性。
二、开始
2.1 依赖导入
<!-- 导入jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 导入postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
2.2 环境准备
2.2.1 创建实体类对象
- 在项目中创建实体类,用于映射数据库表和列。
- 实体类需要使用 @Entity 注解进行标记,并且需要指定主键和自动生成策略,例如:
@Entity
@Table(name = "users")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
get/set方法...
}
2.2.2 创建 Repository 接口
- 创建 Repository 接口,并继承 JpaRepository<>
- Repository 接口加上 @Repository 注解,由 Spring 容器扫描并进行管理
@Repository
public interface UsersMapper extends JpaRepository<Users, Long> {
}
2.2.3 SpringBoot 启动类
- SpringBoot 主程序入口,若只是使用JPA框架,配置只需要添加 @EnableJpaRepositories 注解即可
@SpringBootApplication
@EnableJpaRepositories
public class JpaStart {
public static void main(String[] args) {
SpringApplication.run(JpaStart.class,args);
}
}
2.2.4 创建 Controller 类
- 对 PostgreSQL 数据库实现基本的增删改查功能
@RestController
@RequestMapping("/users")
public class UsersController {
@Autowired
private UsersMapper usersMapper;
/**
* 保存和修改
* @param users 传递的实体
* @return Ajaxresult转换结果
*/
@PutMapping
public AjaxResult addOrUpdate(@RequestBody Users users) {
try {
if (users.getId() != null && users.getId() > 0) {
Users users1 = usersMapper.findById(users.getId()).get();
BeanUtils.copyProperties(users, users1);
usersMapper.save(users1);
} else {
usersMapper.save(users);
}
return AjaxResult.me();
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("保存对象失败!" + e.getMessage());
}
}
/**
* 删除对象信息
* @param id
* @return
*/
@DeleteMapping(value = "/{id}")
public AjaxResult remove(@PathVariable("id") Long id) {
try {
usersMapper.deleteById(id);
return AjaxResult.me();
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("删除对象失败!" + e.getMessage());
}
}
/**
* 根据id获取用户
* @param id
* @return
*/
@GetMapping("/{id}")
public AjaxResult loadById(@PathVariable("id") Long id) {
try {
Users users = usersMapper.findById(id).get();
return AjaxResult.me().setResultObj(users);
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("获取一个失败!" + e.getMessage());
}
}
/**
* 查看所有的员工信息
* @return
*/
@GetMapping
public AjaxResult loadAll() {
try {
List<Users> list = usersMapper.findAll();
return AjaxResult.me().setResultObj(list);
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("获取所有失败!" + e.getMessage());
}
}
}
关于 亿琪软件
上海亿琪软件有限公司成立于2016年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
2023年,公司发布“YiFUSION|工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI能力:高性能数据采集、多类型数据融合、AI算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
2022年公司推出 “YiCLOUD|亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动OCP认证,公司还是边缘计算产业联盟ECC成员。
感知物联,畅快无限。
联系我们
网站:http://yiqisoft.cn
邮件:support@yiqisoft.cn
电话:021-68863086
手机:186-1666-9123