1、对内嵌数据库的支持
内嵌数据库通常用于开发和测试环境,不推荐用于生产环境。Spring Boot提供自动配置的嵌入式数据库有H2、HSQL、Derby,你不需要提供任何连接配置就能使用。
例子:
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-data-jpa</artifactId> 4 </dependency> 5 6 <dependency> 7 <groupId>org.hsqldb</groupId> 8 <artifactId>hsqldb</artifactId> 9 <scope>runtime</scope> 10 </dependency>
2、连接生产数据库(Mysql)
导入数据库依赖:
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-jdbc</artifactId> 4 </dependency> 5 6 <dependency> 7 <groupId>mysql</groupId> 8 <artifactId>mysql-connector-java</artifactId> 9 <version>6.0.6</version> 10 </dependency>
然后在application.properties配置文件中添加mysql配置:
1 spring.datasource.url=jdbc:mysql://localhost:3306/test 2 spring.datasource.username=dbuser 3 spring.datasource.password=dbpass 4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、使用JdbcTemplate操作数据库
首先在数据库中创建用户表USER,并添加字段name和age。
接口类:
1 public interface UserService { 2 3 /** 4 * 新增一个用户 5 * @param name 6 * @param age 7 */ 8 void create(String name, Integer age); 9 10 /** 11 * 根据name删除一个用户高 12 * @param name 13 */ 14 void deleteByName(String name); 15 16 /** 17 * 获取用户总量 18 */ 19 Integer getAllUsers(); 20 }
实现类:
1 @Service 2 public class UserServiceImpl implements UserService { 3 4 @Autowired 5 private JdbcTemplate jdbcTemplate; 6 7 @Override 8 public void create(String name, Integer age) { 9 jdbcTemplate.update("insert into USER(NAME, AGE) values(?, ?)", name, age); 10 } 11 12 @Override 13 public void deleteByName(String name) { 14 jdbcTemplate.update("delete from USER where NAME = ?", name); 15 } 16 17 @Override 18 public Integer getAllUsers() { 19 return jdbcTemplate.queryForObject("select count(1) from USER", Integer.class); 20 } 21 }
测试类:
1 @RunWith(SpringRunner.class) 2 @SpringBootTest(classes = Application.class) 3 public class JdbcTest { 4 5 @Autowired 6 private UserService userService; 7 8 @Test 9 public void test() { 10 userService.create("a1", 11); 11 12 System.out.println("----"); 13 14 System.out.println(userService.getAllUsers()); 15 } 16 }