第三步:在配置文件中为PostgreSQL数据库配置数据源、以及JPA的必要配置 。
spring: datasource:url: jdbc:postgresql://localhost:5432/testusername: postgrespassword: 123456driver-class-name: org.postgresql.Driver jpa:properties:hibernate:dialect: org.hibernate.dialect.PostgreSQLDialecthbm2ddl:auto: create第四步:创建用户信息实体,映射user_info表(最后完成可在pgAdmin中查看)
@Entity@Data@NoArgsConstructorpublic class UserInfo {@Id@GeneratedValueprivate Long id;private String name;private Integer age;public UserInfo(String name, Integer age) {this.name = name;this.age = age;}}第五步:创建用户信息实体的增删改查
public interface UserInfoRepository extends JpaRepository<UserInfo, Long> {UserInfo findByName(String name);UserInfo findByNameAndAge(String name, Integer age);@Query("from UserInfo u where u.name=:name")UserInfo findUser(@Param("name") String name);}第六步:创建单元测试,尝试一下增删改查操作 。
@Slf4j@SpringBootTestpublic class ApplicationTests {@Autowiredprivate UserInfoRepository userRepository;@Testpublic void test() throws Exception {// 创建10条记录userRepository.save(new UserInfo("AAA", 10));userRepository.save(new UserInfo("BBB", 20));userRepository.save(new UserInfo("CCC", 30));userRepository.save(new UserInfo("DDD", 40));userRepository.save(new UserInfo("EEE", 50));userRepository.save(new UserInfo("FFF", 60));userRepository.save(new UserInfo("GGG", 70));userRepository.save(new UserInfo("HHH", 80));userRepository.save(new UserInfo("III", 90));userRepository.save(new UserInfo("JJJ", 100));// 测试findAll, 查询所有记录Assertions.assertEquals(10, userRepository.findAll().size());// 测试findByName, 查询姓名为FFF的UserAssertions.assertEquals(60, userRepository.findByName("FFF").getAge().longValue());// 测试findUser, 查询姓名为FFF的UserAssertions.assertEquals(60, userRepository.findUser("FFF").getAge().longValue());// 测试findByNameAndAge, 查询姓名为FFF并且年龄为60的UserAssertions.assertEquals("FFF", userRepository.findByNameAndAge("FFF", 60).getName());// 测试删除姓名为AAA的UseruserRepository.delete(userRepository.findByName("AAA"));// 测试findAll, 查询所有记录, 验证上面的删除是否成功Assertions.assertEquals(9, userRepository.findAll().size());}}把单元测试跑起来:

文章插图
一切顺利的话,因为这里用的是create策略,所以表还在,打开pgAdmin,可以看到user_info表自动创建出来了,里面的数据也可以查到,看看跟单元测试的逻辑是否符合 。

文章插图
思考一下如果您之前有读过本系列教程中关于MySQL的10多篇使用案例,再看这篇使用PostgreSQL的案例,是不是感觉差别非常小?其实真正变动的部分主要是两个地方:
- 数据库驱动的依赖
- 数据源的配置信息
【SpringBoot中使用PostgreSQL数据库】
推荐阅读
- JavaScript中根据字符串中的范围规则,判断当前值是否符合条件
- iOS使用FFmpeg命令行
- SpringBoot对SpringMVC的自动配置,你知道多少?
- 李彦宏:中国基本不会再出一个OpenAI,创业公司重做ChatGPT没多大意义
- 一道题,测试你是否“睡眠障碍”,中医推荐几个方法缓解失眠
- 罗兰|曝于文红老公出轨成性!曾睡4000多名中国姑娘,每月零用钱仅5万
- 泽口靖子|昭和美人泽口靖子,皇太子的梦中情人,世界首富的追求对象
- 胡萝卜里面有什么维生素
- 小茴香能下奶吗
- 李崇霄|中国首位公开艾滋病女孩朱力亚,自曝被黑人男友传染,却仍爱他很深
