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

        
          org.apache.phoenix  
          phoenix-core  
          4.3.0  
        
        
          commons-dbcp  
          commons-dbcp  
          1.4  
        

(2)配置Spring配置文件

  
  
          
          
      
  
      
          
      
  
      
      
  
      
          
          
          
          
          
          
          
          
      
  

(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;  
  
@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;  
    }  

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Java分类目录。将固定链接加入收藏夹。