阿里druid数据源及JdbcTemplate配置使用

接近年底了在外地出差格外想家呀,尤其这种到处都洋溢着节日喜庆的时节。忙里偷闲把之前有关数据源的疑惑整理了下。分别是数据源和对数据库的操作。


阿里巴巴的数据源druid作为后起之秀,各种优点百科都有,这里就不赘述了。今天主要说下相关配置。

druid配置及使用

添加相关jar包(我是maven项目,因此在pom.xml中添加如下依赖):

<!-- druid数据源 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.28</version>
    </dependency>

项目是springMVC的,主要在spring-servlet.xml中添加如下代码:

<!-- 数据源配置 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="${jdbc.initialSize}"/>
        <!-- 连接池最大使用连接数量 -->
        <property name="maxActive" value="${jdbc.maxActive}"/>
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="${jdbc.minPoolSize}"/>
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="${jdbc.maxIdleTime}"/>
        <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
        <property name="filters" value="stat" />
        <!--监控SQL语句-->
        <property name="proxyFilters">
            <list>
                <ref bean="stat-filter"/>
            </list>
        </property>
    </bean>

    <!--SQL监控-->
    <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <!--慢SQL记录 缺省值为3000,也就是3秒-->
        <property name="slowSqlMillis" value="5000"/>
        <property name="logSlowSql" value="true"/>
        <!--SQL合并配置-->
        <property name="mergeSql" value="true"/>
    </bean>

在web.xml中添加如下代码:

<!-- 监控SQL情况 -->
  <servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <!--允许用户清统计数据-->
    <init-param>
      <param-name>resetEnable</param-name>
      <param-value>true</param-value>
    </init-param>
    <!--用户名-->
    <init-param>
      <param-name>loginUsername</param-name>
      <param-value>helloworld</param-value>
    </init-param>
    <!--密码-->
    <init-param>
      <param-name>loginPassword</param-name>
      <param-value>helloworld</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

  <!--连接池启用Web监控统计功能start -->
  <filter>
    <filter-name>DruidWebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <init-param>
      <param-name>exclusions</param-name>
      <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>DruidWebStatFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!--连接池启用Web监控统计功能end-->

做完以上配置,德鲁伊数据源就可以使用了,在项目启动之后可以打开页面查看监控:
http://ip:port/projectName/druid/index.html


虽然数据源配置完成了,但是要操作数据库(增删改查)还需要通过配置JdbcTemplate来实现(这里只说这一种,还有其他方式)。

JdbcTemplate有关:

 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。

JdbcTemplate主要提供以下五类方法:

execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

query方法及queryForXXX方法:用于执行查询相关语句;

call方法:用于执行存储过程、函数相关语句。

JdbcTemplate是Spring下的,因此无需加入相关jar包(spring配套jar包要加入)

在spring-servlet.xml中添加如下配置:

<!--注入 spring 的 jdbcTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="defaultSource"/>
    </bean>

这样在项目其中之后可以在实现层通过注解的方式来调用实现操作数据库

@Repository
public class WebDaoImpl implements WebDao {

    @Autowired
    JdbcTemplate jdbcTemplate;

    public List queryUserInfo()
    {
        String SQL = " SELECT * FROM H_USER";
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        try {
            list = jdbcTemplate.queryForList(SQL);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于使用 Druid数据的情况,配置 JdbcTemplate 的方式如下: 1. 首先需要在 Spring Boot 项目的 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> ``` 2. 接着,在 application.yml 配置文件中配置 Druid数据,例如: ```yaml spring: datasource: druid: default: url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root driverClassName: com.mysql.jdbc.Driver initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 validationQuery: select 1 from dual db2: url: jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root driverClassName: com.mysql.jdbc.Driver initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 validationQuery: select 1 from dual ``` 3. 然后,需要在代码中创建 JdbcTemplate 实例,并指定要使用数据,例如: ```java @Configuration public class JdbcConfig { @Autowired @Qualifier("db1DataSource") private DataSource db1DataSource; @Autowired @Qualifier("db2DataSource") private DataSource db2DataSource; @Bean(name = "db1JdbcTemplate") public JdbcTemplate db1JdbcTemplate() { return new JdbcTemplate(db1DataSource); } @Bean(name = "db2JdbcTemplate") public JdbcTemplate db2JdbcTemplate() { return new JdbcTemplate(db2DataSource); } } ``` 在上面的代码中,@Qualifier 注解用于指定要使用数据,@Bean 注解用于创建 JdbcTemplate 实例。 这样,就可以在代码中使用对应的 JdbcTemplate 实例来操作数据库了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值