Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成
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>
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; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。