轻松搭建高效系统!使用SpringBoot连接数据库 (springboot连接数据库)
SpringBoot是一个非常流行的框架,它减少了应用程序的开发时间,同时提供了许多优秀的功能,它可以让你轻松地搭建一个高效的系统。SpringBoot还支持许多第三方库,其中更流行的就是连接数据库。
在本文中,我们将讨论如何使用SpringBoot来连接数据库,为你的系统增加数据库操作功能。
1、 添加依赖
在开始编写代码之前,首先需要添加相关的依赖。在pom.xml文件中,添加如下的代码:
“`xml
org.springframework.boot
spring-boot-starter-data-jpa
com.h2database
h2
1.4.196
“`
这里我们使用了两个依赖:spring-boot-starter-data-jpa 和 h2 。其中,spring-boot-starter-data-jpa 依赖包含了SpringBoot的数据访问框架,它对JPA(Java Persistence API)提供了自动配置,只需极少量的代码就可以连接数据库。在此基础上,我们选择了 h2 数据库,在实际编写过程中,你可以根据自己的需要更换为其他数据库。
2、 配置数据库
在配置文件 applications.properties 中添加以下内容:
“`
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
“`
其中,spring.jpa.hibernate.ddl-auto=create 这一行代码指示Hibernate在启动时为我们生成数据库表结构。 jdbc:h2:mem:testdb 是连接H2数据库的URL,它包含了数据库的实际名称(testdb)。org.h2.Driver 是H2数据库的JDBC驱动程序类,而sa和密码为空字符串,则是连接到H2数据库的默认用户名和密码。
3、 定义基本实体
接下来,我们需要定义一些实体类。实体类是映射到数据库表中的对象,在这个对象中我们可以定义表中的各种字段,以及实体之间的关系。在本文中,我们定义了一个简单的实体类用于演示,具体代码如下:
“`java
@Entity
@Table(name=”employee”)
public class Employee {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
public Employee() {}
public Employee(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public Long getId() {
return id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
“`
在这个实体类中,我们定义了 id, firstName 和 lastName 三个字段。id 是主键,注解@Id 和@GeneratedValue(strategy= GenerationType.AUTO)用于设置其自动递增。@Table(name=”employee”)用于指定表名。
4、 实现Repository
完整的实现Repository的方法如下:
“`java
@Repository
public interface EmployeeRepository extends JpaRepository{
}
“`
其中,@Repository注解表示这个EmployeeRepository接口是一个仓库层的组件,而JpaRepository则是SpringDataJPA为我们提供的一个有趣的接口,提供了许多操作数据库的方法,比如:findAll()、save()、delete()等。
5、 编写测试代码
测试代码如下:
“`java
@RunWith(SpringRunner.class)
@SpringBootTest
public class EmployeeRepositoryIntegrationTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private EmployeeRepository employeeRepository;
@Test
public void whenFindByName_thenReturnEmployee() {
// given
Employee alex = new Employee(“Alex”, “Tao”);
entityManager.persist(alex);
entityManager.flush();
// when
Employee found = employeeRepository.findByFirstName(alex.getFirstName());
// then
assertThat(found.getLastName())
.isEqualTo(alex.getLastName());
}
}
“`
这个测试代码使用的是JUnit框架,它启动了一个Spring容器,并使用TestEntityManager模拟了数据库的操作。在测试代码中,我们向实体类Employee中添加一条名为Alex的数据,并使用employeeRepository.findByFirstName方法找到这个数据。
6、 运行测试
完成前面的代码后,运行测试程序,如果一切正常,将看到测试成功的结果信息,意味着系统已经成功连接到H2数据库。
7、