使用JPA连接MySQL数据库

使用JPA连接MySQL数据库

步骤:

(1)下载JPA所需要的库函数;
(2)创建实体java文件;
(3)创建Persistence.xml,此文件将配置数据库并制定实体类;
(4)使用JPA添加CRUD操作:
(5)根据测试结果修改代码,再测试,直到被测试的代码完全正确。

Questions:

1.What is persistent class?

持久化类:在应用程序中,用来实现业务问题实体的类(如,在电子商务应用程序中的Customer和Order)就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能是瞬时的或托管的。就如同它的名字暗示的,它的实例会被持久性保存于数据库中。

持久化是将程序数据在持久状态和瞬时状态间转换的机制。
持久化类(persistent class):可以被hibernate保存到数据库,并且从数据库读取的类。

性质:
(1)持久化类:是指其实例需要被Hibernate持久化到数据库中的类。持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。
注:get/set方法必须符合特定的命名规则,get和set后面紧跟属性的名字&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,在你的Java项目中引入JPA的依赖,然后配置好数据源。这里以Spring Boot为例,配置数据源可以在application.properties或application.yml中进行配置。 接着,定义实体类,分别代表主表和子表: ```java @Entity @Table(name = "main_table") public class MainTable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String gender; // 省略 getter/setter } @Entity @Table(name = "sub_table") public class SubTable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String a1; private String a2; private String a3; private String a4; private String a5; // 省略 getter/setter } ``` 然后定义主表和子表之间的关系: ```java @Entity @Table(name = "main_table") public class MainTable { // 省略其他属性 @OneToMany(mappedBy = "mainTable", cascade = CascadeType.ALL) private List<SubTable> subTables; // 省略 getter/setter } @Entity @Table(name = "sub_table") public class SubTable { // 省略其他属性 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "main_table_id") private MainTable mainTable; // 省略 getter/setter } ``` 这里使用@OneToMany和@ManyToOne注解表示主表和子表之间的一对多关系。 接着,定义主表和子表的Repository: ```java @Repository public interface MainTableRepository extends JpaRepository<MainTable, Long> { } @Repository public interface SubTableRepository extends JpaRepository<SubTable, Long> { } ``` 最后,在Service中编写插入数据的方法: ```java @Service public class MyService { @Autowired private MainTableRepository mainTableRepository; @Autowired private SubTableRepository subTableRepository; public void insertData(String name, String gender, String[] subData) { // 插入主表数据 MainTable mainTable = new MainTable(); mainTable.setName(name); mainTable.setGender(gender); mainTableRepository.save(mainTable); // 插入子表数据 List<SubTable> subTables = new ArrayList<>(); for (String sub : subData) { SubTable subTable = new SubTable(); subTable.setA1(sub); subTable.setA2(sub); subTable.setA3(sub); subTable.setA4(sub); subTable.setA5(sub); subTable.setMainTable(mainTable); subTables.add(subTable); } subTableRepository.saveAll(subTables); } } ``` 这里的insertData方法接收参数name、gender和subData,分别表示主表的name、gender属性和子表的a1、a2、a3、a4、a5属性数组。在方法中,先插入主表数据,然后根据主表的id插入子表数据。注意子表数据需要设置主表的关联。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值