专栏首页晓月寒·Spring Boot从入门到精通-数据库连接

Spring Boot从入门到精通-数据库连接

前面我们已经使用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即可在浏览器中看到数据库中所有表的数据。 以上就是使用JdbcTemplate管理数据库的使用方式,不过在项目中使用mybatis管理数据库会是更好的选择,在下一节中我们将会使用Spring Boot整合mybatis实现另一个简单的接口Spring Boot从入门到精通-集成mybatis

您的关注是我最大的动力

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你真的会写mybatis.xml吗?养成好习惯写养眼好用的xml

    我们使用mybatis无非就是进行一些增删改查的操作,但是简单的增删改查想要写好却大有门道。

    我的小熊不见了丶
  • MongoDB Java 操作技巧总结

    MongoDB 是一个基于分布式文件存储的文档型数据库,使用过MongoDB的同学相信很难不被他的特性所吸引。MongoDB 中许多名词和我们常用的关系型数据库...

    我的小熊不见了丶
  • 多端统一开发-Taro的安装与使用

    Taro是一套遵循React语法规则的多端开发解决方案。目前市面上已经有各式各样的小程序、h5和安卓、ios端,如何解决一次开发,多端运行已经成为开发者目前迫切...

    我的小熊不见了丶
  • 还不知道怎么回邮件?Gmail新功能帮你脱离苦海:Smart Compose使用神经网络智能撰写电子邮件

    上周在Google I / O上,Google介绍了Smart Compose,这是Gmail的一项新功能,它使用机器学习功能在键入时交互地提供句子完成建议,使...

    AiTechYun
  • Pytest的配置文件(八)

    在前面的文章中介绍了Pytest中使用conftest.py来共享fixture,事实上我们可以通过Pytest中的配置文件pytest.ini来改变Pyte...

    无涯WuYa
  • Python学习笔记(2)

    py3study
  • ClickHouse分布式IN & JOIN 查询的避坑指南

    当数据表包含多个分片的时候,我们需要将普通的本地查询转换为分布式查询。当然,这个转换动作是不需要用户自己进行的,在ClickHouse里面会由Distribut...

    Nauu
  • test

    青铜
  • XGBoost(三):Python语言实现

    上篇文章介绍了XGBoost在R语言中的实现方法(XGBoost(二):R语言实现),本篇文章接着来介绍XGBoost在Python中的实现方法。

    三猫
  • Pytest之pytest-assume同用例多断言,断言1失败会执行后续代码及断言2

    一般我们做自动化测试时,一个用例会写多个断言,当第一个断言失败后,后面的代码就不会执行了,于是我们引进了pytest-assume插件可以解决断言失败后继续断言...

    橙子探索测试

扫码关注云+社区

领取腾讯云代金券