要想使springboot项目具有访问数据库的功能,我们可以在创建项目时候选择SQL->MySQL、JDBC
如果嫌麻烦,可以在已有的项目的pom.xml文件里添加MySQL和JDBC的依赖,pom.xml代码如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
引入依赖之后,还需要配置数据库的连接参数,我这里以yml的写法为例(properties也是可以的)
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.1.3:3306/jdbc
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username就是数据库的登录帐户,password就是登录的密码,url是数据库的地址,driver-class-name是数据库驱动,这里我们采用alibaba的druid数据源
这里记录一个犯过的错,就是用户名密码的属性一定是spring.datasource.username(或password),第一次配置的时候在idea上敲password,联想出来的第一个属性是spring.datasource.data-password,在连接数据库的时候报错,报没有密码,当时研究了好长时间都没搞懂为什么,后来把data-password改成password之后就好了
写个数据源配置类:
@Configuration
public class DruidConfig {
@ConfigurationProperties("spring.datasource")
@Bean
public DataSource druid(){
return new DruidDataSource();
}
}
配置完配置文件之后,我们在数据库中建一张user表,表里两个字段,id和name
然后我们写一个controller类,代码如下:
@Controller
public class MyController {
@Autowired
JdbcTemplate jdbcTemplate;
@ResponseBody
@RequestMapping("/queryUser")
//这里我们写一个查询,将查询结果直接返回给浏览器
public Map<String,Object> jdbcRequest(){
List<Map<String,Object>> list = jdbcTemplate.queryForList("select * from user");
return list.get(0);
}
}
接下来我们用浏览器来验证一下结果,在地址栏里输入queryUser请求,然后看返回到浏览器的结果,如我们的预期将表中的数据查询出来并返回了