SpringBoot上MySQL的连接与使用

一直想将之前写的的微信小程序毕业设计重构一遍,把新的框架技术应用在里面替代原始的JSP和JDBC,于是就有了今天的话题。

首先,已经搭建好了SpringBoot框架。

然后开始,在SpringBoot上简历MySQL连接。

添加所需的jar包

  • 引入jdbc支持
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
  • 引入MySQL连接依赖包
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

在Springboot配置文件中配置数据源信息:

我理解里application.properties文件和application.yml文件作用一致,格式不一样,因此下面两种配置一个就ok.

application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/hbeunews
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

application.yml:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/hbeunews
    username: root
    password: 123456

到这里大致的部分就完成了。但是这样配置后,想取数据却取不到,后面依次踩了几个坑。

首先展示下我的查询部分java代码:

这里使用@Autowired自动注入JdbcTemplate.

我先是在方法上面声明@Test想免去写controller直接看行不行的,但是template一直报错打断点显示为null说明没有获取到Springboot的JDBCTemplate,后来看到网上的观点,是只有整个springboot项目启动了才会生成JdbcTemplate对象才会有jdbcTemplate自动注入,单元测试是行不通的。于是我写了Controller来使得刷新页面时调用这个方法,老老实实启动整个项目。

然后启动单元测试报错:The server time zone value '�й���׼ʱ��' is unrecognized

解决办法是在配置文件中的url后面加上?serverTimezone=UTC

变成:spring.datasource.url=jdbc:mysql://localhost:3306/hbeunews?serverTimezone=UTC

还有鼠标放在写的SQL上报错:No data sources are configured to run this sql.

没有配置数据源,在IDEA右边的toolBar中的Database中点击“+”,添加MySQL的数据源配置,OK

以及鼠标放在SQL语句上还有IDEA警告:SQL dialect is not configured.

大概理解就是要配置SQL的语法,是那种类型的数据库风格的SQL语句。

Alter+Enter点进去点击Generic配置SQL的Dialect为Mysql.

————————————————————————————————————————————————

在解决了上面几个问题后,我就可以查询到数据库中的数据了。如下图:

发布了16 篇原创文章 · 获赞 4 · 访问量 4300

猜你喜欢

转载自blog.csdn.net/Mr_Chenn/article/details/100069886
今日推荐