嵌入式資料庫通常用于開發和測試環境,不推薦用于生産環境。Spring Boot提供自動配置的嵌入式資料庫有H2、HSQL、Derby,你不需要提供任何連接配接配置就能使用。
Demo:
需要引入的maven依賴:
<!--使用JDBCTemplate通路資料-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
application.properties中配置資料源:
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
接口:
public interface IUserService {
/**
* 擷取使用者總量
*/
Integer getAllUsers();
}
實作類:
@Service
public class UserServiceImpl implements IUserService{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public Integer getAllUsers() {
return jdbcTemplate.queryForObject("select count(1) from user", Integer.class);
}
}
實體:
@Component
public class User {
private Long id;
private String name;
private Integer age;
//get,set省略
}
Controller:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/getUsers")
public String getUsers(){
Integer a =userService.getAllUsers();
return a+"";
}
}
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`name` varchar(255) NOT NULL default '',
`age` int(11) default NULL,
PRIMARY KEY (`name`),
UNIQUE KEY `age` USING BTREE (`age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
---------------------------------------------------
INSERT INTO `user` VALUES ('1', '1');
INSERT INTO `user` VALUES ('w', '2');
INSERT INTO `user` VALUES ('w21', '31');
INSERT INTO `user` VALUES ('w2', '34');
簡單的小demo就完事了,可以嘗試敲一下,輕松通路資料庫,但是開發中還是不建議使用該通路資料格式,接下來的文章繼續介紹。