java Hibernate jpa 联合开发 人工智能时代的工程搭建
第一步在构建时间就要选 web jpa

大约有相关的依赖

第二步集成 Spring Data JPA + Hibernate
1)在com.immmm下面建一个配置包 包名config 下面建一个配置文件 名为 JAPConfig
2) 在com.immmm下面 还要建一个仓库类 repository 这个是存放对表操作的增删改方法的类,如下图所示

3) 在resources 下面建一个数据库配置文件,这个和上面的repositroy 相近,但是位置不一样。这个和main 一级
4)还要在com.immmm 下面建一个enitty 包 用于放数据对库表对应对象,。
备注一下,对应数据表的时候,有时候表是有下划画的,而对象命名是驼峰的,所以在定义表对象的时候遇这到情问下要加注解@Columu
如下图如示:

因为表名是小写,对象是大写。也要注解下

然后就定义数据连接的引挚

完成代码如下:
package com.imooc.config;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; // 导入用于构建数据源的工具类
import org.springframework.boot.context.properties.ConfigurationProperties; // 导入用于绑定配置文件属性的注解
import org.springframework.context.annotation.Bean; // 导入用于声明Spring Bean的注解
import org.springframework.context.annotation.Configuration; // 导入用于标记配置类的注解
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; // 导入用于启用JPA仓库的注解
import org.springframework.orm.jpa.JpaTransactionManager; // 导入用于JPA事务管理的类
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; // 导入用于创建EntityManagerFactory的工厂类
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; // 导入Hibernate作为JPA供应商的适配器
import org.springframework.transaction.PlatformTransactionManager; // 导入事务管理器接口
import org.springframework.transaction.annotation.EnableTransactionManagement; // 导入用于启用事务管理的注解
import javax.sql.DataSource; // 导入数据源接口
@Configuration // 标记该类为Spring配置类
@EnableJpaRepositories(basePackages = "com.inggg.repository") // 启用JPA仓库支持,并指定仓库接口所在的包路径
@EnableTransactionManagement // 启用Spring事务管理
public class JPAConfig {
// 定义数据源Bean,并从application.properties中加载配置
@Bean
@ConfigurationProperties(prefix = "spring.datasource") // 绑定配置文件中以spring.datasource开头的属性
public DataSource dataSource() {
return DataSourceBuilder.create().build(); // 使用DataSourceBuilder构建数据源
}
// 定义EntityManagerFactory Bean
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {
HibernateJpaVendorAdapter jpaVendor = new HibernateJpaVendorAdapter(); // 创建Hibernate作为JPA供应商的适配器
jpaVendor.setGenerateDdl(false); // 设置是否自动生成DDL(数据库表结构)
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); // 创建EntityManagerFactory工厂
entityManagerFactory.setDataSource(dataSource()); // 设置数据源
entityManagerFactory.setJpaVendorAdapter(jpaVendor); // 设置JPA供应商适配器
entityManagerFactory.setPackagesToScan("com.imgac.entity"); // 设置实体类所在的包路径,用于扫描@Entity注解的类
return entityManagerFactory; // 返回EntityManagerFactory工厂Bean
}
// 定义事务管理器Bean
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager transactionManager = new JpaTransactionManager(); // 创建JPA事务管理器
transactionManager.setEntityManagerFactory(entityManagerFactory); // 设置EntityManagerFactory
return transactionManager; // 返回事务管理器Bean
}
}
配置数据库application.properties 的连配置如下

执行运行

启动时验证框架会要求登陆如下图,这儿是需要更改的

增加下面配置可以优化掉,

编写第一个测试功能,在主入口中测试

集成章元测试
JUnit
H2内存数据库
现在我们开始写一个单元测试,但是每个章元测试类的方法注解都一样,所以我先搞一个空父类

空父类之间,删除里面的方法


以下是一个完整的单元测试,其中红色部份是断言
import org.junit.jupiter.api.Test; // 导入JUnit 5的测试注解 import static org.junit.jupiter.api.Assertions.assertEquals; // 导入assertEquals断言方法 import org.springframework.beans.factory.annotation.Autowired; // 导入@Autowired注解,用于自动注入依赖 import com.imooc.repository.UserRepository; // 导入UserRepository接口 // 继承ApplicationTests,这是一个集成测试基类 public class UserRepositoryTest extends ApplicationTests { @Autowired private UserRepository userRepository; // 自动注入UserRepository @Test // 标记这是一个测试方法 public void testFindone() { User user = userRepository.findOne(1L); // 调用UserRepository的findOne方法,根据ID查找用户 assertEquals("wali", user.getName()); // 断言查询到的用户的名字是否为"wali" } }
编写第一个接口演示 java spring boot JPA 开发
第一步根据数据库映射一个对象类,再设计一个前端响应的字段dta类,将数据库类转成响应前端类时,我们还要一个工具库 modelMapper 由于我们向前端响应时还里要将数据格式规范一下,所以我们再设计一个格式响应类


浙公网安备 33010602011771号