Spring框架本地数据库连接配置教程 (spring 连接本地数据库配置文件)
随着数据存储和处理成为越来越重要的一项任务,许多程序员都在探索如何在程序中使用数据库。Spring框架是一个强大的工具,可以帮助程序员实现本地数据库连接。在本文中,我们将提供一个Spring框架本地数据库连接配置的教程,让程序员能够快速开始使用数据库。
之一步:安装数据库
需要在本地安装一个数据库。这可以是MySQL、Oracle、PostgreSQL、SQLite等。我们选择一个已经安装好的MySQL数据库,如果还没有安装,可以根据自己的系统去安装一个适合的版本。
第二步:创建数据库和表
在MySQL数据库中,可以使用以下SQL命令来创建一个名为example的数据库:
“`
CREATE DATABASE example;
“`
然后,我们可以创建一个名为person的表:
“`
CREATE TABLE person (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id)
);
“`
这个表有三个字段:id、name和age。id字段是自增的主键。
第三步:添加依赖项
要在Spring框架中使用MySQL数据库,需要添加相应的依赖项。在Maven项目中,可以在pom.xml文件中添加以下依赖项:
“`
org.springframework
spring-jdbc
5.2.8.RELEASE
mysql
mysql-connector-java
8.0.21
“`
这里,我们添加了org.springframework:spring-jdbc和mysql:mysql-connector-java两个依赖项。这些依赖项将使我们能够在Spring框架中使用JDBC连接MySQL数据库。
第四步:配置数据源
在Spring框架中,数据源是一个对象,它封装了与数据库的连接、数据源和事务的细节。我们需要配置Spring数据源,以便在应用程序中使用它。
可以在src/mn/resources目录下创建一个名为application.properties的文件,添加以下配置:
“`
spring.datasource.url=jdbc:mysql://localhost:3306/example
spring.datasource.username=root
spring.datasource.password=123456
“`
这里,我们配置了一个名为spring.datasource的数据源。它的URL指向我们本地的MySQL数据库,并提供了用户名和密码。根据实际情况,应该将这些值替换为自己的值。
第五步:创建实体类
在Spring框架中,一个实体类通常与一个数据库表相对应。我们需要创建一个名为Person的Java类,它将映射到我们之前创建的person表。
“`
package com.example.demo;
public class Person {
private Long id;
private String name;
private Integer age;
public Person(Long id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
“`
这个实体类有三个字段:id、name和age。它还有一个单独的构造函数和访问器方法来访问这些字段。
第六步:实现数据访问对象
在Spring框架中,可以使用JdbcTemplate来访问数据库。为了访问Person表,我们需要在src/mn/java/com/example/demo目录下创建一个名为PersonDao的Java类。这个类将包含与Person数据表交互的所有代码。
“`
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class PersonDao {
private JdbcTemplate jdbcTemplate;
@Autowired
public PersonDao(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List findAll() {
String sql = “SELECT id, name, age FROM person”;
return jdbcTemplate.query(sql, (rs, rowNum) ->
new Person(
rs.getLong(“id”),
rs.getString(“name”),
rs.getInt(“age”)
));
}
public void save(Person person) {
String sql = “INSERT INTO person (name, age) VALUES (?, ?)”;
jdbcTemplate.update(sql, person.getName(), person.getAge());
}
}
“`
在这个类中,我们定义了两个方法:findAll和save。findAll方法返回Person表中的所有行,save方法将一个Person对象插入到表中。这些方法都使用JdbcTemplate对象来执行SQL查询和更新。我们将这个类加上@Repository注解,Spring框架会自动将其注册为数据访问对象。
第七步:实现服务
在Spring框架中,服务(Service)是业务逻辑层,通常用于调用数据访问对象来操作数据库。我们需要在src/mn/java/com/example/demo目录下创建一个名为PersonService的Java类。
“`
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PersonService {
private final PersonDao personDao;
@Autowired
public PersonService(PersonDao personDao) {
this.personDao = personDao;
}
public List findAll() {
return personDao.findAll();
}
public void save(Person person) {
personDao.save(person);
}
}
“`
在这个类中,我们定义了两个方法:findAll和save。这些方法都是调用PersonDao中相应的方法以实现它们的功能。我们将这个类加上@Service注解,Spring框架会自动将其注册为服务对象。
第八步:实现控制器
在Spring框架中,控制器(Controller)是Web请求的入口点。我们需要在src/mn/java/com/example/demo目录下创建一个名为PersonController的Java类。
“`
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class PersonController {
private final PersonService personService;
@Autowired
public PersonController(PersonService personService) {
this.personService = personService;
}
@GetMapping(“/person”)
public List findAll() {
return personService.findAll();
}
@PostMapping(“/person”)
public void save(@RequestBody Person person) {
personService.save(person);
}
}
“`
在这个类中,我们定义了两个方法:findAll和save。这些方法都是使用注解来定义它们的路由(URL)和相应的HTTP方法。findAll方法返回Person表中的所有行,save方法将一个Person对象插入到表中。
第九步:运行应用程序
我们编写了一个完整的Spring框架应用程序,并将其连接到了本地MySQL数据库。现在,我们可以启动应用程序并查看它是否成功连接到数据库。
可以在终端中运行以下命令来启动应用程序:
“`
mvn spring-boot:run
“`
然后,可以在Web浏览器中打开http://localhost:8080/person,它将返回一个空列表。现在,可以使用Postman或任何其他API测试工具来向http://localhost:8080/person发送POST请求,添加一个新的Person对象到数据库中。