zoukankan      html  css  js  c++  java
  • Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成

    介绍:Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排运行以生成标准的JDBC结果集。

    直接使用HBase API、协同处理器与自己定义过滤器。对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。很多其它參考官网:http://phoenix.apache.org/

    Phoenix实现了JDBC的驱动,使用Phoenix JDBC和普通的数据库(Mysql)JDBC一样,也能够通过Spring JDBCTemplate的方式,将数据库的操作模块化,以及进行数据源。事物方面的管理。
    实现过程例如以下:
    (1)关于Phoenix与Hbase的整合请參考:
    编写pom.xml

      <dependency>
                <groupId>org.apache.phoenix</groupId>
                <artifactId>phoenix-core</artifactId>
                <version>4.3.0</version>
            </dependency>
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>

    (2)假设是windows的开发环境,配置C:WindowsSystem32driversetchosts文件,加入develop5的配置
    192.168.199.242   develop5

    (3)配置Spring配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
            xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:context="http://www.springframework.org/schema/context"
            xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.1.xsd
    
        <bean id="phoenixJdbcTemplate"
              class="org.springframework.jdbc.core.JdbcTemplate">
            <constructor-arg ref="phoenixDataSource"/>
            <qualifier value="phoenixJdbcTemplate"></qualifier>
        </bean>
    
        <bean id="baseInterfacePonenixImpl" class="com.eric.monitor.dao.impl.HBaseBaseDAOImpl">
            <property name="jdbcTemplate" ref="phoenixJdbcTemplate"/>
        </bean>
    
        <context:component-scan base-package="com.eric.monitor.dao.impl"/>
        <context:component-scan base-package="com.eric.monitor.service.impl"/>
    
        <bean id="phoenixDataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="org.apache.phoenix.jdbc.PhoenixDriver"/>
            <property name="url" value="jdbc:phoenix:develop5"/>
            <property name="username" value=""/>
            <property name="password" value=""/>
            <property name="initialSize" value="20"/>
            <property name="maxActive" value="0"/>
            <!--由于Phoenix进行数据更改时不会自己主动的commit,必需要加入defaultAutoCommit属性,否则会导致数据无法提交的情况-->
            <property name="defaultAutoCommit" value="true"/>
        </bean>
    </beans>



    (3)编写Java程序
    import com.eric.common.framework.dao.HBaseDao;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.RowMapper;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    /**
     * 类描写叙述
     *
     * @author aihua.sun
     * @date 2015/3/9
     * @since V1.0
     */
    
    @Repository
    public class HBaseBaseDAOImpl implements HBaseDao {
    
        private JdbcTemplate jdbcTemplate;
        public HBaseBaseDAOImpl(JdbcTemplate template) {
            this.jdbcTemplate = template;
        }
        public HBaseBaseDAOImpl() {
            super();
    
        }
       public List query(String querySql) {
            return jdbcTemplate.query(querySql);
        }
    
        @Override
        public void update(String querySql) {
            System.out.println(querySql);
            jdbcTemplate.update(querySql);
        }
    
        @Override
        public void batchUpdate(String updateSQL) {
            System.out.println("##########BATCH UPDATE:"+updateSQL);
            jdbcTemplate.batchUpdate(updateSQL);
        }
    
        public JdbcTemplate getJdbcTemplate() {
            return jdbcTemplate;
        }
    
        @Autowired
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }


  • 相关阅读:
    情人节玫瑰花
    Yii2美化confirm
    apache ab压力测试
    Yii2的Debug工具
    yii2的扩展程序包
    slim
    composer使用
    打印
    yii的csv导出
    ajax文件下载
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5062751.html
Copyright © 2011-2022 走看看