标签 JPA 下的文章

目录

一、前言

JPA简介

  1. Java Persistence API (JPA) 是一种基于 ORM (Object-Relational Mapping) 技术的 Java EE 规范。它主要用于将 Java 对象映射到关系型数据库中,以便于对数据进行持久化操作。
  2. JPA 主要由三个部分组成,分别是 Entity、EntityManager 和 Query。其中 Entity 用于描述 Java 对象和数据库表之间的映射关系;EntityManager 用于管理实体对象的生命周期和完成实体对象与数据库之间的操作;Query 用于查询数据。

PostgreSQL简介

  1. 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