SpringBoot数据库整合

SpringBoot数据库整合

整合jdbc

1.需要导入两个启动器,一个是jdbc的启动器用于整合jdbc,一个是mysql-connector-java,用于连接数据库

        <!--jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

2.在SpringBoot的application.properties中配置相关的数据源信息

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatistest?serverTimezone=CTT&useSSL=false&useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

3.实验测试

@SpringBootTest
class SpringbootDataApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        //查看数据源
        System.out.println(dataSource.getClass());
    }
}

在这里插入图片描述
说明:我们可以发现SpringBoot2.3.4的底层jdbc默认的是com.zaxxer.hikari.HikariDataSource

@RestController
public class testController {
    @Autowired    //jdbc模板里面封装了许多方法
    JdbcTemplate jdbcTemplate;

    @GetMapping("/getList")
    public List<Map<String,Object>> getList(){
        String sql = "select * from mybatistest.user";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }

    @GetMapping("/addUser")
    public String add(){
        String sql = "insert into mybatistest.user(id,name,password) values (10,'小时','xs123456')";
        //模板自动进行了事务处理
        jdbcTemplate.update(sql);
        return "add ok";
    }
 }

实验结果:
在这里插入图片描述
说明:JdbcTemplate中有封装了许多方法(如下图),我们就不在需要每次与数据库交换都要去getCollection等繁琐操作,就连增删改操作的事务处理,springboot已经帮我们封装好了自动完成。我们只需写上正确的sql语句,并调用相对应的方法即可完成。
部分源码:
在这里插入图片描述

整合Druid

Druid是阿里巴巴开发的数据库连接池,可以监控数据库访问性能,获得SQL执行日志等功能。
1.在整合jdbc的基础上导入依赖

        <!--阿里Druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>

2…在SpringBoot的application.properties中配置相关的数据源信息和配置Druid基本属性

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatistest?serverTimezone=CTT&useSSL=false&useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource  #将默认配置类型改为Druid
    druid:
      # 初始化连接池个数
      initialSize: 5
      # 最小连接池个数——》已经不再使用,配置了也没效果
      min-idle: 1
      # 最大连接池个数
      max-active: 20
      # 配置获取连接等待超时的时间,单位毫秒,缺省启用公平锁,并发效率会有所下降
      max-wait: 60000
      # 监控统计用的filter:stat
      # 日志用的filter:log4j
      # 防御sql注入的filter:wall
      filters: stat,wall
	#    开启监控
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: 123456

其他配置可查看相关文档druid–github
3.测试查看当前数据源

@SpringBootTest
class SpringbootDataApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        //查看数据源
        System.out.println(dataSource.getClass());
    }
}

在这里插入图片描述
说明:配置了type后我们可以使用其他的Druid数据源com.alibaba.druid.pool.DruidDataSource

4.测试监控功能
地址栏输入http://localhost:8080/druid,可以跳转到druid监控的登录页面,这里的用户和密码是在application.yml中的spring.datasource.druid.stat-view-servlet.login-username和spring.datasource.druid.stat-view-servlet.login-password的值。此页面是阿里巴巴Druid自带写好的。
在这里插入图片描述

在这里插入图片描述

整合MyBatis

1.需要导入两个启动器,一个是jdbc的启动器用于整合jdbc,一个是mysql-connector-java,用于连接数据库。同时导入一个整合mybatis的依赖

        <!--mybatis,mybatis自写的-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <!--jdbc,Spring官方-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--数据库连接,Spring官方-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

mybatis-spring-boot的官方文档
2.在SpringBoot的application.properties中配置相关的数据源信息

spring.datasource.url=jdbc:mysql://localhost:3306/mybatistest?serverTimezone=CTT&useSSL=false&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3.在pojo层编写实体类User

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private String password;
}

4.在Mapper层写UserMapper接口

@Mapper
@Repository
public interface UserMapper {
    //查询所有用户
    List<User> getUserList();
}

5.在Mapper层中编写UserMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bilysen.mapper.UserMapper">
    <select id="getUserList" resultType="User">
        select * from mybatistest.user
    </select>
</mapper>

6.在SpringBoot的application.properties中整合MyBatis配置

#整合mybatis,mybatis-application.properties
#使用别名
mybatis.type-aliases-package=com.bilysen.pojo
#配置mapper文件路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

7.编写Controller层并进行测试

@RestController
public class UserController {
    @Autowired
    UserMapper userMapper;

    @GetMapping("/getList")
    public List<User> getList(){
        List<User> users = userMapper.getUserList();
        return users;
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值