在上一篇博客中,我们介绍了如何入门使用Spring Boot,并创建了一个简单的应用程序。在本篇博客中,我们将进一步学习Spring Boot的一些高级特性,并通过一个示例代码来演示。
首先,我们将介绍如何配置数据库连接。Spring Boot提供了自动配置的功能,可以简化数据库连接的配置过程。在application.properties文件中,添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
这样,我们就配置了一个MySQL数据库连接,连接地址为localhost:3306/mydb,用户名为root,密码为123456。
接下来,我们将创建一个简单的数据访问对象(DAO)。在src/main/java/com/example/demo目录下创建一个新的类文件UserDao.java,添加以下代码:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addUser(String name, int age) {
jdbcTemplate.update("INSERT INTO user(name, age) VALUES (?, ?)", name, age);
}
}
这个类使用了Spring的注解@Repository来标记这是一个数据访问对象。在addUser方法中,我们使用了Spring的JdbcTemplate来执行数据库操作。
现在,我们可以在之前的DemoApplication类中使用UserDao。在hello方法中,添加以下代码:
@Autowired
private UserDao userDao;
@GetMapping("/add")
public String add() {
userDao.addUser("John", 25);
return "User added successfully!";
}
这样,当访问"/add"路径时,将会调用add方法,向数据库中添加一个名为John,年龄为25的用户。
接下来,我们将介绍如何使用Spring Boot的数据持久化功能。在application.properties文件中,添加以下配置:
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
这样,我们就配置了使用MySQL数据库,并开启了SQL日志输出和自动DDL。
接下来,我们将创建一个实体类User,用于映射数据库中的user表。在src/main/java/com/example/demo目录下创建一个新的类文件User.java,添加以下代码:
import javax.persistence.*;
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
// getters and setters
}
这个类使用了Spring的注解@Entity和@Table来标记这是一个实体类,并指定了映射的数据库表名为"user"。@Id注解标记了主键字段,@GeneratedValue注解指定了主键的生成策略为自增。
接下来,我们将创建一个用户服务类UserService,用于操作用户实体。在src/main/java/com/example/demo目录下创建一个新的类文件UserService.java,添加以下代码:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void addUser(String name, int age) {
User user = new User();
user.setName(name);
user.setAge(age);
userRepository.save(user);
}
}
这个类使用了Spring的注解@Service来标记这是一个服务类,并使用了自动注入的方式注入了UserRepository。
最后,我们将修改DemoApplication类中的add方法,使用UserService来添加用户。在add方法中,添加以下代码:
@Autowired
private UserService userService;
@GetMapping("/add")
public String add() {
userService.addUser("John", 25);
return "User added successfully!";
}
这样,当访问"/add"路径时,将会调用add方法,使用UserService添加一个名为John,年龄为25的用户。
现在,我们可以运行这个应用程序。在项目的根目录下,执行以下命令:
mvn spring-boot:run
当应用程序启动后,你可以在浏览器中访问http://localhost:8080/add,应该能够看到"User added successfully!"的字符串。