net.neoremind.fountain.datasource
类 AbstractMysqlDataSource

java.lang.Object
  继承者 net.neoremind.fountain.datasource.AbstractMysqlDataSource
所有已实现的接口:
MysqlDataSource

public abstract class AbstractMysqlDataSource
extends Object
implements MysqlDataSource

数据源的抽象实现,实现大部分的通用的功能,比如打开连接、权限验证等,建议其他实现MysqlDataSource接口的类都继承本类

作者:
zhangxu

字段摘要
protected  DatasourceConfigure conf
          数据源基础配置
 
构造方法摘要
AbstractMysqlDataSource()
           
 
方法摘要
protected abstract  void applySocket(Socket socket)
          使用给定的socket作为当前实现的主socket
protected  void closeSocket(Socket socket)
          安全的关闭socket连接,使用apache commons io组件实现
protected abstract  Socket createQuerySocket()
          创建一个用于查询的socket
 DatasourceConfigure getConf()
           
 String getIpAddress()
          获取当前数据源的ip地址
protected abstract  org.slf4j.Logger getLogger()
          获取当前实现的logger
protected  Socket getNewSocket()
          创建一个新的socket连接,完成mysql握手和权限验证,并且后续建立network stream,后续使用
 int getPort()
          获取当前数据源的端口
 void open()
          打开一个数据源,用以读取数据
protected  void printMysqlInfo()
          打印当前mysql的信息
 ResultSetPacket query(String query)
          执行查询sql
 TableMeta queryTableMeta(String tableFullName)
          调用如下的命令获取列信息,保存为ColumnMeta列表返回: mysql> show full fields from City; +------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+----------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | Country | char(3) | NO | UNI | | | | District | char(20) | YES | MUL | | | | Population | int(11) | NO | | 0 | | +------------+----------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
 void setConf(DatasourceConfigure conf)
           
protected  OKPacket update(Socket socket, String query)
          封装mysql query text协议,实现update语句的执行
 OKPacket update(String query)
          执行修改数据的sql
protected  Socket updateSettings(Socket socket)
          对新构建的mysql 连接设置配置信息: wait_timeout net_write_timeout net_read_timeout charset
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 net.neoremind.fountain.datasource.MysqlDataSource 继承的方法
close, isOpen
 

字段详细信息

conf

protected DatasourceConfigure conf
数据源基础配置

构造方法详细信息

AbstractMysqlDataSource

public AbstractMysqlDataSource()
方法详细信息

getLogger

protected abstract org.slf4j.Logger getLogger()
获取当前实现的logger

返回:

createQuerySocket

protected abstract Socket createQuerySocket()
创建一个用于查询的socket


applySocket

protected abstract void applySocket(Socket socket)
使用给定的socket作为当前实现的主socket

参数:
socket -

open

public void open()
          throws IOException,
                 NoSuchAlgorithmException,
                 TimeoutException
从接口 MysqlDataSource 复制的描述
打开一个数据源,用以读取数据

指定者:
接口 MysqlDataSource 中的 open
抛出:
IOException
NoSuchAlgorithmException
TimeoutException

update

public OKPacket update(String query)
                throws IOException
从接口 MysqlDataSource 复制的描述
执行修改数据的sql

指定者:
接口 MysqlDataSource 中的 update
返回:
抛出:
IOException

query

public ResultSetPacket query(String query)
                      throws IOException
从接口 MysqlDataSource 复制的描述
执行查询sql

指定者:
接口 MysqlDataSource 中的 query
返回:
抛出:
IOException

queryTableMeta

public TableMeta queryTableMeta(String tableFullName)
                         throws IOException,
                                NoSuchAlgorithmException
调用如下的命令获取列信息,保存为ColumnMeta列表返回:
 mysql> show full fields from City;
 +------------+----------+------+-----+---------+----------------+
 | Field      | Type     | Null | Key | Default | Extra          |
 +------------+----------+------+-----+---------+----------------+
 | Id         | int(11)  | NO   | PRI | NULL    | auto_increment |
 | Name       | char(35) | NO   |     |         |                |
 | Country    | char(3)  | NO   | UNI |         |                |
 | District   | char(20) | YES  | MUL |         |                |
 | Population | int(11)  | NO   |     | 0       |                |
 +------------+----------+------+-----+---------+----------------+
 5 rows in set (0.00 sec)
 

指定者:
接口 MysqlDataSource 中的 queryTableMeta
参数:
tableFullName - 表全名
返回:
ColumnMeta列表
抛出:
IOException
NoSuchAlgorithmException

getIpAddress

public String getIpAddress()
从接口 MysqlDataSource 复制的描述
获取当前数据源的ip地址

指定者:
接口 MysqlDataSource 中的 getIpAddress
返回:

getPort

public int getPort()
从接口 MysqlDataSource 复制的描述
获取当前数据源的端口

指定者:
接口 MysqlDataSource 中的 getPort
返回:

closeSocket

protected void closeSocket(Socket socket)
安全的关闭socket连接,使用apache commons io组件实现

参数:
socket -

printMysqlInfo

protected void printMysqlInfo()
                       throws IOException
打印当前mysql的信息

抛出:
IOException

getNewSocket

protected Socket getNewSocket()
                       throws IOException,
                              NoSuchAlgorithmException,
                              TimeoutException
创建一个新的socket连接,完成mysql握手和权限验证,并且后续建立network stream,后续使用

返回:
和服务端的Socket连接
抛出:
IOException
NoSuchAlgorithmException
TimeoutException

update

protected OKPacket update(Socket socket,
                          String query)
                   throws IOException
封装mysql query text协议,实现update语句的执行

参数:
socket -
query -
返回:
抛出:
IOException

updateSettings

protected Socket updateSettings(Socket socket)
                         throws IOException
对新构建的mysql 连接设置配置信息:

参数:
socket -
返回:
抛出:
IOException

getConf

public DatasourceConfigure getConf()

setConf

public void setConf(DatasourceConfigure conf)


Copyright © 2016 neoremind. All rights reserved.