Spring Boot从入门到精通-数据库连接
2019-01-17 本文已影响0人
我的小熊不见了
前面我们已经使用Spring Boot搭建了一个建大的项目并且向提供了一个rest api供外部调用。这一节我们需要在这个接口中访问数据库。
需要准备的环境:mysql
创建表:
create table user(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
ager VARCHAR(40) NOT NULL,
birth_date DATE,
PRIMARY KEY ( id)
);
数据库连接使用spring提供的JdbcTemplate
pom.xml新增JdbcTemplate依赖。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
-
新建DemoService.java类,把application.property改为application.yml.
项目结构 - application.yml加入以下内容:
spring:
datasource:
name: test
# 数据库地址
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&failOverReadOnly=false
# 数据库账号
username: root
# 数据库密码
password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
- service代码如下:
// 交由是spring管理
@Service
public class DemoService {
// 自动注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Map<String, Object>> test () {
// 查询表中数据并返回
return jdbcTemplate.queryForList("select * from user");
}
}
- controller中代码改造
// 依赖注入
@Autowired
private DemoService demoService;
@GetMapping("/test")
public List<Map<String, Object>> test() {
return demoService.test();
}
启动项目,浏览器中输入: http://localhost:8080/test即可在浏览器中看到数据库中所有表的数据。