(转载)java 枚举 循环遍历以及部分简常见的行使

正文转载自:http://blog.csdn.net/qq\_27093465/article/details/51706076
作者:李学凯

MySQL Fabric安装

哟时候想就此枚举类型:

 

有时候,在筹划一个java
model对象的下,你得有现实的常量字符串之类的东西,这个东西而不曾必要和满项目的大局常量放在同,就位于model的java文件中是无与伦比当的,那么,你可起个别种植选择:

MySQL Fabric是Oracle提供的用来助进行ha\sharding的家伙,它的着力架构:

1,在java model文件中,定义public final static XXXX = “” ;

 图片 1

           这种即使是全局静态变量,通过类名就好直接访问。

 

2,还是在java model 文件之中,定义个枚举类型 public enum
XXXX{a,b,c,d,e,f};

 

好家伙时候,如何行使:

起点看出,借助于Fabric, 可以搭建 HA 集群、Sharing 、HA+Sharding。

当当与前台传过来的数码还是当逻辑操作的代码里面待去用到这个常量值去开比较的时,就是采用枚举类型的上。

采取由fabric中获悉各个数据库、表、分区等之炫耀关系,然后访问相应的mysql
实例。

相似式是: 类名.枚举类型名.单个枚举类型        

 

就此者的例子(假设以一个叫A的model java文件里),

Fabric由三独零件组成:

则为A.XXXX.a.toString();  

1)fabric 的管理工具(也就是 mysqlfabric)。

不畏可如此使用了。

2)fabric
nodes,可以启动1暨大半独node。每个node也是一个历程。用于拍卖fabric的军事管制要、应用之mapping请求。

为何要如此设计常量:

3)backstore,它吗是一个mysql server,维护了HA Group、Sharding Group。

此出个代码的书写原则,这东西一般是未曾人,而且书里面也是不曾人以及你说之,都是代码看多矣,或者,在您发错误的下才知之题材。

 

不畏于祥和之代码里面,要是想只要代码很正式,不被吊打,

 

这就是说写出来的逻辑代码里面是休该出现常量字符串和常量数字之类的物

 

比如说代码里面出现数字:100,8,

下载

要么其他的数字,

 

字符串如:只要是以逻辑代码里面带引号的。

每当mysql
5.6自此的版本,可以应用fabric的相应版本是1.5,在mysql官网上可一直下载。由于fabric是由python语言编写的,并且其中通信用会为此到
mysql-connector- python,所以啊要下载对应的python驱动。

这些代码,你勾勒出来虽然以功能上是未曾问题之,但是,这些还是隐匿的炸弹。

         我下载的本子是:

吓之代码,是未见面并发是题材之。这些东西还当给定义成一个常量,然后再在其他地方用。

mysql-utiltities-1.5.6-1.el6.noarch.rpm
mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm

仿佛c语言里面的宏定义的觉得。

 

不然当充分老后,忽然有些地方的值换了,只待改一处地方,整个项目都并非担心会出题目,

  

而是,如果你没这么干,那么,没人懂得乃以逻辑代码里面还有这么的常量存在。

安装

这就是说代码就见面冒出良好之后果。

1、安装介质

然后就是爆了。

用操作系统root用户来装。

怎么循环一个枚举类型。

先安装mysql-connector-ptyhon,再安装mysql-utilities:

枚举有一个办法,values(),

rpm –i mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm
rpm –i mysql-utiltities-1.5.6-1.el6.noarch.rpm

下形式而: int length = XXXX.values().length  

 安装了后,会有一个mysqlfabric命令可以用。所以可以通过该令来判断是否安装成功。

回到的凡一个档次以及枚举类型一致的数组。

2、配置文件

然后便得循环是数组。

每当装好fabric之后,就会有一个默认的部署文件:fabric.cfg。

即便循环枚举类型了。

默认的配置文件之职位:

public enum EnumTest {  
    MON, TUE, WED, THU, FRI, SAT, SUN;  
}  
//循环输出 值  
for (EnumTest e : EnumTest.values()) {  
    System.out.println(e.toString());  
}  

Platform

  图片 2

Package

.ordinal()方法。

Location

夫法就是自从枚举类型的首先只枚举开始,依次从零开始往上递增。

Microsoft Windows

地方的例子中a,b,c,d,e,f,依次对应 为数字 ,0,1,2,3,4,5

mysql-utilities-1.5.6-win32.msi

形式:A.XXXX.a.ordinal();

UTILITIES_INSTALLDIR/etc/mysql/fabric.cfg

 这么个法子调用。

Ubuntu Linux 14.04

创建枚举类型要采取 enum 关键字,
含蓄了所开创的项目且是 
java.lang.Enum 
看似的子类(java.lang.Enum 是一个抽象类)
中的方式与总体性如下图:

mysql-utilities_1.5.6-1ubuntu14.04_all.deb

图片 3

/etc/mysql/fabric.cfg

enum 对象的常用方法介绍

Debian Linux 6.0

int compareTo(E o) 
较这枚举与指定对象的各个。

mysql-utilities_1.5.6-1debian6.0_all.deb

Class<E> getDeclaringClass()
归来跟这个枚举常量的枚举类型相对应之 Class 对象。

/etc/mysql/fabric.cfg

String name() 
返此枚举常量的称,在那个枚举声明遭对那进展宣示。

Red Hat Enterprise Linux 6 / Oracle Linux 6

int ordinal() 
回来枚举常量的序数(它在枚举声明中之职位,其中开常量序数为零星)。

mysql-utilities-1.5.6-1.el6.noarch.rpm

String toString()
返回枚举常量的称,它含在宣称遭。

/etc/mysql/fabric.cfg

static <T extends Enum<T>> T valueOf(Class<T>
enumType, String name)
回去带指定名称的指定枚举类型的枚举常量。

OS X

 

mysql-utilities-1.5.6-osx10.9.dmg

此外的详解用法,七种。

/etc/mysql/fabric.cfg

 

默认的布局文件预览:

[DEFAULT]
prefix = /usr/local
sysconfdir = /usr/local/etc
logdir = /var/log

[storage]
address = localhost:3306
user = fabric_store
password = secret
database = mysql_fabric
auth_plugin = mysql_native_password
connection_timeout = 6
connection_attempts = 6
connection_delay = 1

[servers]
user = fabric_server
password = secret
backup_user = fabric_backup
backup_password = secret
restore_user = fabric_restore
restore_password = secret
unreachable_timeout = 5

[protocol.xmlrpc]
address = localhost:32274
threads = 5
user = admin
password = secret
disable_authentication = no
realm = MySQL Fabric
ssl_ca =
ssl_cert =
ssl_key =

[protocol.mysql]
address = localhost:32275
user = admin
password = secret
disable_authentication = no
ssl_ca =
ssl_cert =
ssl_key =

[executor]
executors = 5

[logging]
level = INFO
url = file:///var/log/fabric.log

[sharding]
mysqldump_program = /usr/bin/mysqldump
mysqlclient_program = /usr/bin/mysql

[statistics]
prune_time = 3600

[failure_tracking]
notifications = 300
notification_clients = 50
notification_interval = 60
failover_interval = 0
detections = 3
detection_interval = 6
detection_timeout = 1
prune_time = 3600

[connector]
ttl = 1

 

当斯布局文件被,会提到到大多种帐户:
·backstore

在[storage]区域,用来配置backstore mysql
server的消息。所以这边配置的尽管是backstore mysql server的操作帐户。

拖欠用户必需的权位:

ALTER              - alter some database objects
CREATE             - create most database objects
CREATE VIEW        - create views
DELETE             - delete rows
DROP               - drop most database objects
EVENT              - manage events
REFERENCES         - foreign keys
INDEX              - create indexes
INSERT             - insert rows
SELECT             - select rows
UPDATE             - update rows

  

·server

在[servers]区域布局的,是具的受管mysql server的帐户。

欠用户必需的权柄:

中间全局满围的权能:

DELETE             - prune_shard
PROCESS            - list sessions to kill
RELOAD             - RESET SLAVE
REPLICATION CLIENT - SHOW SLAVE STATUS
REPLICATION SLAVE  - SHOW SLAVE HOSTS

 

其间Fabric 数据库的权位:

ALTER              - alter some database objects
CREATE             - create most database objects
DELETE             - delete rows
DROP               - drop most database objects
INSERT             - insert rows
SELECT             - select rows
UPDATE             - update rows

 

·backup

在[servers]区域布局的,它是装有的受管mysql
server上用来backup的帐户。例如执行mysqldump。

欠用户之权能:

EVENT              - show event information
EXECUTE            - show routine information inside views
REFERENCES         - foreign keys
SELECT             - read data
SHOW VIEW          - SHOW CREATE VIEW
TRIGGER            - show trigger information

 

·restore

在[servers]区域布局的,它是具有的受管mysql
server上用来restore的帐户。Restore 用户可使用mysql
client执行restore操作。

该用户之权能:

ALTER              - ALTER DATABASE
ALTER ROUTINE      - ALTER {PROCEDURE|FUNCTION}
CREATE             - CREATE TABLE
CREATE ROUTINE     - CREATE {PROCEDURE|FUNCTION}
CREATE TABLESPACE  - CREATE TABLESPACE
CREATE VIEW        - CREATE VIEW
DROP               - DROP TABLE (used before CREATE TABLE)
EVENT              - DROP/CREATE EVENT
INSERT             - write data
LOCK TABLES        - LOCK TABLES (--single-transaction)
REFERENCES         - Create tables with foreign keys
SELECT             - LOCK TABLES (--single-transaction)
SUPER              - SET @@SESSION.SQL_LOG_BIN = 0
TRIGGER            - CREATE TRIGGER

 

·admin 

在[protocol.mysql]、[protocol.xmlrpc]面临配备的admin用户,是Fabric
的客户端(包括mysqlfabric、使用jdbc驱动的使用等) 与fabric
node交互使用的用户、密码。

 在使用mysqlfabric时,可以使用默认的安排文件,也得以应用由定义的布局文件。不管采取谁配置文件,相关的配备起都是使放的。

 

 

3、创建backstore 帐户

创办一个mysql 实例作为fabric 的backstore。然后创建一个fabric
backstore帐户。

CREATE USER 'fabric_store'@'localhost'
   IDENTIFIED BY 'secret';

GRANT ALTER, CREATE, CREATE VIEW, DELETE, DROP, EVENT,
   INDEX, INSERT, REFERENCES, SELECT, UPDATE ON mysql_fabric.*
   TO 'fabric_store'@'localhost';

创的之用户称、密码要和配置文件fabric.cfg中[storeage]区域中的user、password相同。 

这时候fabric数据库尚未曾开创,但是也不要自己失去创造。

 

4、初始化fabric数据库、表

使用mysqlfabric初始化:

mysqlfabric manage setup

假定要是以于定义的fabric.cfg配置文件:

 

mysqlfabric --config=/your/fabric/cfg/path manage setup

 

5、mysqlfabric命令

1)启动fabric节点

mysqlfabric --config=/your/fabric/cfg/path manage start

2)停止fabric节点 

mysqlfabric --config=/your/fabric/cfg/path manage stop

关于其它命令,可以参照官方文档。 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图