jdbc和druid和mybatis之间的关系

第一种方式

jdbc整合了:加载数据库驱动,创建连接,写原生语句,执行,关闭这些东西.

第二种方式

mybatis对jdbc进行封装,他允许你通过配置的形式,配置数据库参数,并且允许你通过xml来写动态sql语句.if:test让你可以把sql变得灵活起来.并且还能将你的查询结果直接映射到你想要的实体上面.
然后你就去配置你的用户名,密码,连接超时,等等.
等你下次使用mybatis时,他后面会根据你的配置,帮你加载数据库驱动,创建连接,写原生语句,执行,关闭.

第三种方式

但目前每次访问数据库都要重新创建关闭一个新的连接,会浪费时间和性能,所以mybatis需要再配一个连接池,比如druid.c3p0
mybatis让你指定连接池是谁,如druid.之后将原来的东西都交给druid.什么账号了,密码了.都给他,让druid帮你创建一批连接,在你需要用的时候,mybatis可以从druid连接池中取一个连接

一次简单的访问流程:

controller->service->dao->mapper
1.首先项目启动时druid就已经使用jdbc创建好一堆连接了,留待后用.
2.当请求到mapper时,mybatis框架创建临时类.
3.然后将动态sql进行替换重写,变成原始的native sql.
4.从druid拿到一个连接.
5.将sql通过连接交给数据库执行.
6.然后获取执行结果.
7.mybatis进行将结果进行映射,返回数据.

整合Spring+SpringMVC+Mybatis

1、修改mybatis-config.xml文件,将连接池等配置移除,在spring中配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
<!-- MyBatis的全局配置文件 -->
<configuration >
	<!-- 1.配置开发环境 -->
	<!-- 1.1.配置事务管理方式:JDBC:将事务交给JDBC管理(推荐) -->
	<!-- 1.2.配置数据源,即连接池方式:JNDI/POOLED/UNPOOLED -->
	<!-- 2.加载Mapper配置文件,路径以斜杠间隔: xx/xx/../xx.xml -->
	
</configuration>

2、在applicationContext.xml中配置druid连接池

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

    <!-- 1.加载jdbc.properties文件的位置 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 2.配置druid连接池 ,id是固定值,class是druid连接池类的全路径 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <!-- 配置连接数据库的基本信息 -->
        <property name="driverClassName" value="${db.driverClassName}"></property>
        <property name="url" value="${db.url}"></property>
        <property name="username" value="${db.username}"></property>
        <property name="password" value="${db.password}"></property>
    </bean>

    <!-- 3.整合spring和mybatis框架
        将SqlSession等对象的创建交给Spring容器
        id值(sqlSessionFactory)是固定值
     -->
    <bean id="sqlSessionFactory"
          class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 3.1.指定mybatis核心配置文件的位置 -->
        <property name="configLocation"
                  value="classpath:mybatis/mybatis-config.xml"></property>
        <!-- 3.2.配置连接池(数据源) ref指向连接池bean对象的id值 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- 3.3、扫描所有的 XxxMapper.xml映射文件,读取其中配置的SQL语句 -->
        <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
    </bean>

    <!-- 4、定义mapper接口扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 扫描所有XxxMapper接口,将接口实例的创建交给spring容器 -->
        <property name="basePackage" value="com.mq.dao"/>
    </bean>

    <!-- 5.配置需要扫描的包(service层):spring自动去扫描 base-package下的类,
        如果扫描到的类上有 @Controller、@Service、@Component等注解,
        将会自动将类注册为bean(即由spring创建实例)
     -->
    <context:component-scan base-package="com.mq.service"/>

</beans>

3、 在resources目录下创建jdbc.properties文件

db.driverClassName=com.mysql.cj.jdbc.Driver
db.url= jdbc:mysql://localhost:3306/ssm_demo?useSSL=false&serverTimezone=UTC
db.username=root
db.password=morongrui
MyBatis 是一种优秀的 ORM 框架,可以方便地对数据库进行操作。而 TDengine 是一种高性能、高可靠性的时序数据库Druid 是一个开源的数据库连接池,支持并发控制、SQL 监控等功能。下面介绍如何集成 MyBatis、TDengine 和 Druid。 1. 集成 MyBatis 和 TDengine 首先需要在 pom.xml 中添加 TDengine 的依赖: ``` <dependency> <groupId>com.taosdata.jdbc</groupId> <artifactId>taos-jdbc</artifactId> <version>1.7.0</version> </dependency> ``` 然后在 MyBatis 的配置文件中添加 TDengine 数据库的连接信息: ``` <dataSource type="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="com.taosdata.jdbc.TSDBDriver"/> <property name="url" value="jdbc:TAOS://127.0.0.1:6030/test"/> <property name="username" value="root"/> <property name="password" value="taosdata"/> </dataSource> ``` 其中,“url”中的“127.0.0.1:6030”表示 TDengine 数据库的 IP 地址和端口号,“test”表示要连接的数据库名称,“root”和“taosdata”分别为 TDengine 数据库的用户名和密码。 2. 集成 MyBatis、TDengine 和 Druid 在 pom.xml 中添加 Druid 的依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> ``` 然后在 MyBatis 的配置文件中添加 Druid 数据库连接池: ``` <dataSource type="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="com.taosdata.jdbc.TSDBDriver"/> <property name="url" value="jdbc:TAOS://127.0.0.1:6030/test"/> <property name="username" value="root"/> <property name="password" value="taosdata"/> <property name="initialSize" value="5"/> <property name="minIdle" value="5"/> <property name="maxActive" value="20"/> <property name="maxWait" value="60000"/> <property name="timeBetweenEvictionRunsMillis" value="300000"/> <property name="minEvictableIdleTimeMillis" value="600000"/> <property name="testWhileIdle" value="true"/> <property name="validationQuery" value="SELECT 1"/> <property name="testOnBorrow" value="false"/> <property name="testOnReturn" value="false"/> <property name="poolPreparedStatements" value="true"/> <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/> </dataSource> ``` 其中,“initialSize”表示连接池的初始化大小,“minIdle”表示最小空闲连接数,“maxActive”表示最大活跃连接数,“maxWait”表示最大等待时间,“timeBetweenEvictionRunsMillis”表示两次检查连接池的间隔时间,“minEvictableIdleTimeMillis”表示连接最小空闲时间,“testWhileIdle”表示是否检查空闲连接,“validationQuery”表示连接校验语句,“testOnBorrow”表示是否检查连接的可用性,“testOnReturn”表示连接返回给连接池时是否检查可用性,“poolPreparedStatements”表示是否缓存 PreparedStatement,“maxPoolPreparedStatementPerConnectionSize”表示每个连接最大缓存的 PreparedStatement 数量。 最后在 MyBatis 的配置文件中添加 Druid 的相关配置: ``` <dataSource type="com.alibaba.druid.pool.DruidDataSource"> ... </dataSource> <plugins> <plugin interceptor="com.alibaba.druid.pool.DruidDataSourceStatInterceptor"/> <plugin interceptor="com.alibaba.druid.wall.WallFilter"/> </plugins> ``` 其中,“com.alibaba.druid.pool.DruidDataSourceStatInterceptor”表示 Druid 的连接池监控插件,“com.alibaba.druid.wall.WallFilter”表示 Druid 的 SQL 检查插件。 以上就是 MyBatis 集成 TDengine 和 Druid 的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值