阿里巴巴开源Druid结合Mybatis基本使用

  1. Druid是阿里巴巴开源的数据库连接池项目,它为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。Druid连接池集合了c3p0、dbcp、proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况。
    Druid相对于其他数据库连接池的优点有:
  1. 强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况。
  2. 列式存储. Druid使用面相列的存储,对于OLAP分析需要读取列分析的场景加快了速度,同时一列数据中有很多共性的数据,数据的压缩效果好,占用空间小,支持快速扫描及聚合查询。
  3. 可扩展的分布式架构. Druid在生产环境中可以部署到数十台多数百台服务器组成的集群中,可以提供每秒百万条数据的写入,针对万亿条记录做到亚秒到秒级查询。
  4. 支持并行计算. Druid可以在集群中并行执行一个查询。
  5. 支持实时或者批量读取数据. Druid支持实时获取数据,实时获取的数据可以实时查询,也支持批量读取数据。
  6. 集群自动平衡,方便运维. Druid集群扩大或者缩小时,只需要增加或者减少对应的机器数,Druid集群自动会平衡各个节点,不需要停机。
  1. MyBatis是一个优秀的持久层框架,支持普通SQL查询、存储过程和高级映射。它消除了几乎所有JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain
    Ordinary Java Objects,普通的Java对象)映射成数据库中的记录。

MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并且改名为MyBatis。2013年11月迁移到Github。

  1. 灵活:MyBatis不会对SQL进行任何限制,只要求开发者编写的SQL语句遵循MyBatis的XML映射规则,所以它具有很好的灵活性。

  2. 易于理解:MyBatis的配置文件和映射文件都是基于XML的,结构清晰,易于理解和阅读。

  3. 解耦:MyBatis将SQL语句与Java代码分离,使得SQL语句更易于维护。

  4. 映射强大:MyBatis支持多种映射方式,包括一对一、一对多、多对一和多对多等复杂映射关系。

  5. 缓存支持:MyBatis提供了一级缓存和二级缓存的支持,可以有效地提高查询效率。

  6. 动态SQL:MyBatis支持使用动态SQL,可以根据不同的条件生成不同的SQL语句。

  7. 易于集成:MyBatis可以很容易地与其他框架(如Spring、Hibernate)集成,提供统一的API。

在这里插入图片描述

maven依赖:

<dependencies>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <!-- Spring框架核心依赖 -->
    <version>5.2.10.RELEASE</version>
  </dependency>

  <!--Mybatis依赖-->
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <!-- MyBatis框架核心依赖 -->
    <version>3.5.7</version>
  </dependency>

  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <!-- Log4j日志框架依赖 -->
    <version>1.2.17</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <!-- JUnit单元测试框架依赖 -->
    <version>4.12</version>
  </dependency>

  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <!-- Druid数据库连接池依赖 -->
    <version>1.2.11</version>
  </dependency>

  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <!-- MyBatis与Spring整合依赖 -->
    <version>1.3.3</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <!-- Spring与JDBC整合依赖 -->
    <version>5.3.10</version>
  </dependency>

  <!--Mysql连接依赖-->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <!-- MySQL数据库驱动依赖 -->
    <version>8.0.11</version>
  </dependency>

</dependencies>


JdbcConfig.java具体实现代码


import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;

public class JdbcConfig {
    @Value("${driver}") // 从配置文件中获取数据库驱动名称
    String driver;
    @Value("${url}") // 从配置文件中获取数据库连接URL
    String url;
    @Value("${username}") // 从配置文件中获取数据库用户名
    String username;
    @Value("${password}") // 从配置文件中获取数据库密码
    String password;

    @Bean // 定义一个方法,返回一个DataSource对象
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource(); // 创建一个Druid数据源对象
        dataSource.setDriverClassName(driver); // 设置数据库驱动类名
        dataSource.setUrl(url); // 设置数据库连接URL
        dataSource.setUsername(username); // 设置数据库用户名
        dataSource.setPassword(password); // 设置数据库密码
        return dataSource; // 返回创建好的数据源对象
    }
}


MyBatisConfig.java实现代码文件


import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MyBatisConfig {

    // 获取sqlSessionFactory对象
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        // 设置数据源
        ssfb.setDataSource(dataSource);
        return ssfb;
    }

    // 扫描映射文件
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mps = new MapperScannerConfigurer();
        mps.setBasePackage("org.example.mapper");
        return mps;
    }

}


SpringConfing.java代码实现文件


import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;

@Configuration // 表示这是一个配置类
@ComponentScan("org.example") // 指定要扫描的包路径
@PropertySource("jdbc.properties") // 指定属性文件的位置
@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入其他配置类
public class SpringConfing {


}

jdbc.properties配置文件


driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT-8
username = root
password = 123456

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值