UBSデータベースの実際のデータのオンライン処理


-1.スクリプトを使用してkasaiデータベースを構築し、初期権限に関する情報とスーパーユーザー情報を挿入します.データベース・スクリプトは次のとおりです.
 
-- KASAI     
-- for MySQL 4.x and above

CREATE TABLE kasai_users
(
id                                  VARCHAR(50) NOT NULL,
first_name                          VARCHAR(50),
last_name                           VARCHAR(50),
email                               VARCHAR(254),
password                            VARCHAR(254),
blocked                             INT,
description                         VARCHAR(254),
data                                TEXT,
super_user                          TINYINT default 0,
PRIMARY KEY (id)

) TYPE=InnoDB;

CREATE TABLE kasai_groups
(
id                                  VARCHAR(50) NOT NULL,
description                         VARCHAR(254),
blocked                             INT,
system                              TINYINT default 0,
data                                TEXT,

PRIMARY KEY CLUSTERED (id)

) TYPE=InnoDB;

CREATE TABLE kasai_users_groups
(
id_user                             VARCHAR(50) NOT NULL,
id_group                            VARCHAR(50) NOT NULL,

PRIMARY KEY (id_user,id_group ),

INDEX IDX_kasai_users_groups_user (id_user),
INDEX IDX_kasai_users_groups_group (id_group),

CONSTRAINT FK_users_groups_users FOREIGN KEY( id_user )
    REFERENCES kasai_users ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_users_groups_groups FOREIGN KEY( id_group )
    REFERENCES kasai_groups ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE
) TYPE=InnoDB;

CREATE TABLE kasai_operatives
(
id                                  VARCHAR(254) NOT NULL,
sequence                            INT,
description                         VARCHAR(254),

PRIMARY KEY CLUSTERED (id )
) TYPE=InnoDB;

CREATE TABLE kasai_objects
(
id                             VARCHAR(254) NOT NULL,

PRIMARY KEY (id )
) TYPE=InnoDB;

CREATE TABLE kasai_roles
(
id                             int auto_increment NOT NULL,
name                           VARCHAR(50) NOT NULL,
description                    VARCHAR(254),

PRIMARY KEY (id )
) TYPE=InnoDB;

CREATE TABLE kasai_roles_operatives
(
id_role                         int NOT NULL,
id_operative                   VARCHAR(254) NOT NULL,

PRIMARY KEY (id_role,id_operative ),

INDEX IDX_kasai_roles_operatives_role (id_role),
INDEX IDX_kasai_roles_operatives_operative (id_operative),

CONSTRAINT FK_roles_operatives_operatives FOREIGN KEY( id_operative )
    REFERENCES kasai_operatives ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_roles_operatives_roles FOREIGN KEY( id_role )
    REFERENCES kasai_roles ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE

) TYPE=InnoDB;

CREATE TABLE kasai_objects_users_roles(
id                      int auto_increment NOT NULL,
id_object  		VARCHAR(254) NOT NULL,
id_user                 VARCHAR(50) NOT NULL,
id_role		         int NOT NULL,

PRIMARY KEY (id ),

UNIQUE (id_object, id_user, id_role),

INDEX IDX_kasai_objects_users_roles_object (id_object),
INDEX IDX_kasai_objects_users_roles_user (id_user),
INDEX IDX_kasai_objects_users_roles_role (id_role),

CONSTRAINT FK_objects_users_roles_roles FOREIGN KEY( id_role )
    REFERENCES kasai_roles ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_objects_users_roles_objects FOREIGN KEY( id_object )
    REFERENCES kasai_objects ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_objects_users_roles_users FOREIGN KEY( id_user )
    REFERENCES kasai_users ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE

) TYPE=InnoDB;

CREATE TABLE kasai_objects_groups_roles(
id                       int auto_increment NOT NULL,
id_object 		VARCHAR(254) NOT NULL,
id_group                 VARCHAR(50) NOT NULL,
id_role	 		int NOT NULL,

PRIMARY KEY (id ),

INDEX IDX_kasai_objects_groups_roles_object (id_object),
INDEX IDX_kasai_objects_groups_roles_group (id_group),
INDEX IDX_kasai_objects_groups_roles_role (id_role),

UNIQUE (id_object, id_group, id_role),

CONSTRAINT FK_objects_groups_roles_roles FOREIGN KEY( id_role )
    REFERENCES kasai_roles ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_objects_groups_roles_objects FOREIGN KEY( id_object )
    REFERENCES kasai_objects ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE,

CONSTRAINT FK_objects_groups_roles_groups FOREIGN KEY( id_group )
    REFERENCES kasai_groups ( id )
    ON UPDATE NO ACTION
    ON DELETE CASCADE

) TYPE=InnoDB;


CREATE TABLE kasai_audit(
    audit_id            INT AUTO_INCREMENT NOT NULL,
    user_id             VARCHAR(50) NOT NULL,
    date_time           DATETIME NOT NULL,
    return_code         INT NOT NULL,
    error_description   VARCHAR(254),
    duration            INT,
    client_ip           VARCHAR(15),
    operation           VARCHAR(254) NOT NULL,
    object_id           VARCHAR(254),
    transaction_data    TEXT,

    PRIMARY KEY (audit_id)
) TYPE=InnoDB;

-- Operatives

INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai','1','All permissions over Kasai');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.object.modifyaccess','2','Modify an object permissions');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user','5','All permissions involving users');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.read','6','Read user information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.delete','7','Delete a user');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.commit','8','Create and update a users information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.resetpassword','9','Reset a users password');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.block','10','Block a user');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.user.unblock','11','Unblock a user');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group','12','All permissions involving groups');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.read','13','Read group information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.delete','14','Delete a group');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.commit','15','Create and update a groups information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.block','16','Block a group');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.unblock','17','Unblock a group');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.user.delete','18','Remove users from a group');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.group.user.add','19','Add users to a group');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.role.commit','20','Create and update a role information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.role.read','21','Read role information');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('kasai.role.delete','22','Delete a role');

INSERT INTO kasai_operatives (id,sequence,description) VALUES('blacklist.add',100,'add');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('blacklist.delete',101,'delete');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('blacklist.edit',102,'edit');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('blacklist.query',103,'query');
INSERT INTO kasai_operatives (id,sequence,description) VALUES('blacklist.detail',104,'detail');

-- Groups

insert into kasai_groups (id,description,blocked,data) values ('Administrators','Administrators group',0,null);
insert into kasai_groups (id,description,blocked,system,data) values ('AllUsers','All system users',0,1,null);

-- Users
-- This two sample users have the password set to "password" using a SHA hashing algorithm
insert into kasai_users (id, password,blocked, super_user) values ('admin','5b-56-61-1c-37-47-3f-3f-6-7e-25-b-6c-8-33-1b-7e-1a-71-28',0,1);
insert into kasai_users (id, password,blocked, super_user) values ('guest','5b-56-61-1c-37-47-3f-3f-6-7e-25-b-6c-8-33-1b-7e-1a-71-28',0,0);

-- user/group

insert into kasai_users_groups (id_user,id_group) values ('admin','Administrators');
insert into kasai_users_groups (id_user,id_group) values ('admin','AllUsers');
insert into kasai_users_groups (id_user,id_group) values ('guest','AllUsers');
-- operatives/roles

insert into kasai_roles (id,name,description) values (1,'Administrator','Can perform any action');
insert into kasai_roles (id,name,description) values (2,'Guest','Can not perform any action by default');
insert into kasai_roles (id,name,description) values (3,'User','Can read users, roles and groups information');

----Administrator Role
insert into kasai_roles_operatives values (1,'kasai');

---User Role
insert into kasai_roles_operatives values (3,'kasai.group.read');
insert into kasai_roles_operatives values (3,'kasai.role.read');
insert into kasai_roles_operatives values (3,'kasai.user.read');


-- Entities

insert into kasai_objects values ('/kasai/');
insert into kasai_objects values ('/kasai/user/');
insert into kasai_objects values ('/kasai/group/');
insert into kasai_objects values ('/kasai/role/');
insert into kasai_objects values ('/kasai/user/admin');
insert into kasai_objects values ('/kasai/user/guest');
insert into kasai_objects values ('/kasai/group/Administrators');
insert into kasai_objects values ('/kasai/group/AllUsers');
insert into kasai_objects values ('/kasai/role/1');
insert into kasai_objects values ('/kasai/role/2');
insert into kasai_objects values ('/kasai/role/3');

-- Assign permissions on objects

insert into kasai_objects_groups_roles values (1,'/kasai/','Administrators',1);

--          ,       
-- user
INSERT INTO kasai_users(id,first_name,last_name,email,password,blocked,super_user) VALUES('[email protected]','empty','empty','[email protected]','empty',0,0);

-- object
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_objects');
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_objects_users_roles');
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_operatives');
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_roles');
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_roles_operatives');
INSERT INTO kasai_objects(id) VALUES ('kasai/kasai_users');

INSERT INTO kasai_objects(id) VALUES ('test/tb_domain');
INSERT INTO kasai_objects(id) VALUES ('test/tb_prefix');

-- role
INSERT INTO kasai_roles(id,name,description) VALUES (9,'owner_test','Permission to add,delete,modify,list');
INSERT INTO kasai_roles(id,name,description) VALUES (10,'viewer_test','Permission to list');
INSERT INTO kasai_roles(id,name,description) VALUES (11,'guest_test','Permission to do nothing');

-- user-object-role
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_objects','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_objects_users_roles','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_operatives','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_roles','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_roles_operatives','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_users','[email protected]',9);

INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('test/tb_domain','[email protected]',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('test/tb_prefix','[email protected]',9);

-- operative
INSERT INTO kasai_operatives(id,sequence,description) VALUES ('list_test',1000,'List');
INSERT INTO kasai_operatives(id,sequence,description) VALUES ('add_test',1001,'Add');
INSERT INTO kasai_operatives(id,sequence,description) VALUES ('delete_test',1002,'Delete');
INSERT INTO kasai_operatives(id,sequence,description) VALUES ('modify_test',1003,'Modify');

-- role-operative
INSERT INTO kasai_roles_operatives(id_role,id_operative) VALUES (9,'add_test');
INSERT INTO kasai_roles_operatives(id_role,id_operative) VALUES (9,'delete_test');
INSERT INTO kasai_roles_operatives(id_role,id_operative) VALUES (9,'list_test');
INSERT INTO kasai_roles_operatives(id_role,id_operative) VALUES (9,'modify_test');

INSERT INTO kasai_roles_operatives(id_role,id_operative) VALUES (10,'list_test');

 
 
0.ライブラリ作成スクリプトを使用してターゲットマシンに作成し、tb_domain,tb_prefixテーブル、urlフィールドにインデックスを作成することに注意してください.後のスクリプトには含まれません.ライブラリ作成スクリプトは次のとおりです.
CREATE TABLE `tb_actlog` (
  `id` int(10) NOT NULL auto_increment,
  `db_name` varchar(255) NOT NULL,
  `db_type` int(1) NOT NULL,
  `db_url` varchar(255) NOT NULL,
  `db_user` varchar(255) NOT NULL,
  `act` int(1) NOT NULL,
  `sub_date` TIMESTAMP(14),
  `ip` varchar(255) NOT NULL,
  `info` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `tb_domain`;
CREATE TABLE `tb_domain` (
  `id` int(10) NOT NULL auto_increment,
  `url` varchar(255) NOT NULL,
  `tag_block` int(1) NOT NULL,
  `tag_reversible` int(1) NOT NULL,
  `reserve_id_str` varchar(255) NOT NULL,
  `extra_attr` varchar(50) NOT NULL,
  `user` varchar(255) NOT NULL,
  `sub_date` TIMESTAMP(14),
  `info` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `tb_prefix`;
CREATE TABLE `tb_prefix` (
  `id` int(10) NOT NULL auto_increment,
  `url` varchar(255) NOT NULL,
  `tag_selfinclude` int(1) NOT NULL,
  `tag_block` int(1) NOT NULL,
  `tag_reversible` int(1) NOT NULL,
  `reserve_id_str` varchar(255) NOT NULL,
  `extra_attr` varchar(50) NOT NULL,
  `user` varchar(255) NOT NULL,
  `sub_date` TIMESTAMP(14),
  `info` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `tb_protective_white`;
CREATE TABLE `tb_protective_white` (
  `id` int(10) NOT NULL auto_increment,
  `url` varchar(255) NOT NULL,
  `type` int(1) NOT NULL,
  `ip` varchar(255) NOT NULL,
  `user` varchar(255) NOT NULL,
  `sub_date` TIMESTAMP(14),
  `info` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

CREATE TABLE `dm_extra_attr` (
  `id` int(10) NOT NULL auto_increment,
  `code` int(3) NOT NULL,
  `content` varchar(50) NOT NULL,
  `remark` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

 
1.リアルデータdmpファイルを、ターゲットmysqlの異なるシナリオ(test)にインポートします.すなわち、バッファシナリオです.
2.insert select文により、ドメイン名-"接頭辞-"デッドロン-"の価値のない順序で、バッファスキームからsogou_にインポートblacklistスキームの2つの主要なテーブルにあります.構文は次のとおりです.
 
2.0自増フィールドは1からとし、ドメイン名テーブルデータの整理を容易にする
    alter table sogou_blacklist.tb_domain AUTO_INCREMENT = 1;--------ドメイン名------2.1バッファリングスキーム【ドメイン名テーブル】のレコードをsogou_blacklistスキーム【ドメイン名テーブル】にインポートし、追加属性を【一般】insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)に設定するselect url,1-`type`,0,','普通',user,sub_date from test.domain;---------プレフィックス------2.2バッファスキーム【プレフィックステーブル】のレコードをsogou_blacklistスキーム【プレフィックステーブル】にインポートし、追加属性を【一般】insert into sogou_blacklist.tb_prefix(url,tag_selfinclude,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)に設定するselect url,1-`type`,1-black,0,','普通',user,sub_date from test.url;--------デッドライン------2.3バッファリングスキーム【デッドラインテーブル】の【ドメイン名】レコードをsogou_blacklistスキーム【ドメイン名テーブル】にインポートし、追加属性を【デッドライン】insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)に設定するselect url,1,0,','デッドロック',user,sub_date from test.deadlink where type=1;2.4バッファ方式【デッドチェーンテーブル】の【接頭辞】レコードをsogou_blacklist方式【接頭辞テーブル】にインポートし、追加属性を【デッドチェーン】insert into sogou_blacklist.tb_prefix(url,tag_selfinclude,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)に設定するselect url,1,1,0,','デッドロック',user,sub_date from test.deadlink where type=0;--------無価値------2.5バッファリングスキーム【無価値テーブル】の【無価値】レコードをsogou_blacklistスキーム【ドメイン名テーブル】にインポートし、追加属性を【無価値】insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)に設定するselect url,1,0,','無価値',user,sub_date from test.novalue where type=0;2.6バッファリングスキーム【無価値テーブル】のプレフィックス形式の【非中国語】レコードをdelete from test.novalue where url like'http://%';2.7バッファリングスキーム【無価値テーブル】の【非中国語】レコードを削除し、sogou_blacklistスキーム【ドメイン名テーブル】にインポートし、追加属性を【非中国語】insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)select url,1,0,','非中国語',user,sub_date from test.novalue where type=1;
 
2.8【ドメイン名テーブル】のsub_dateフィールドの0000-00-00 00 00:00を当日レコードに変換
    update sogou_blacklist.tb_domain set sub_date=NOW() where sub_date like '%0000-00-00 00:00:00%'
 
2.9【接頭辞表】のsub_dateフィールドに0000を含むレコードを当日に変換する
    update sogou_blacklist.tb_prefix set sub_date=NOW() where sub_date like '%0000%'3.実行順は
(2.6)オプションドメイン名表2.12.32.52.7(2.8)オプション接頭辞表2.22.4
2.9
 
4.関連するバックバンクJAVAプログラム
 
    Dump.java
 
package dataDump;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;

public class Dump {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			JDBCUtilsTest();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void JDBCUtilsTest() throws Exception {
		double begin;
		begin=System.currentTimeMillis();
		
		
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		String sql;
		int num = 0;
		
		try {
			/**
			 *     :  domain 
			 */
			conn = JDBCUtils.getConnection();
			st = conn.createStatement();
			
 			//2.0        1  ,           
			sql= "alter table sogou_blacklist.tb_domain AUTO_INCREMENT = 1";
			st.executeUpdate(sql);
 			//2.1
			sql= "insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)   select url,1-`type`,0,'','  ',user,sub_date from test.domain";
			num = st.executeUpdate(sql);
			System.out.println("2.1        :"+num);
			//2.3
			sql= "insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)   select url,1,0,'','  ',user,sub_date from test.deadlink where type=1";
			num = st.executeUpdate(sql);
			System.out.println("2.3        :"+num);
			//2.5
			sql= "insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date) select url,1,0,'','   ',user,sub_date from test.novalue where type=0";
			num = st.executeUpdate(sql);
			System.out.println("2.5        :"+num);
			//2.7
			sql= "insert into sogou_blacklist.tb_domain(url,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date) select url,1,0,'','   ',user,sub_date from test.novalue where type=1";
			num = st.executeUpdate(sql);
			System.out.println("2.7        :"+num);
			
			//2.8   sub_date   0000-00-00 00:00:00       
			sql= "update sogou_blacklist.tb_domain set sub_date=NOW() where sub_date like '%0000-00-00 00:00:00%'";
			num = st.executeUpdate(sql);
			System.out.println("2.8            :"+num);
			
			
			/**
			 *     :  prefix 
			 */
			
			//2.2
			sql= "insert into sogou_blacklist.tb_prefix(url,tag_selfinclude,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)   select url,1-`type`,1-black,0,'','  ',user,sub_date from test.url";
			num = st.executeUpdate(sql);
			System.out.println("2.2        :"+num);
			//2.4
			sql= "insert into sogou_blacklist.tb_prefix(url,tag_selfinclude,tag_block,tag_reversible,reserve_id_str,extra_attr,`user`,sub_date)   select url,1,1,0,'','  ',user,sub_date from test.deadlink where type=0";
			num = st.executeUpdate(sql);
			System.out.println("2.4        :"+num);
			
			//2.9  【   】 sub_date     0000        
			sql= "update sogou_blacklist.tb_prefix set sub_date=NOW() where sub_date like '%0000%'";
			num = st.executeUpdate(sql);
			System.out.println("2.9            :"+num);
			 
		} finally {
			JDBCUtils.free( rs,st, conn);
		}
		
		System.out.println("    :"+(System.currentTimeMillis()-begin));
		
		
	}
}

 
 
  JDBCUtils.java
  
package dataDump;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class JDBCUtils {

	private JDBCUtils() {
	}

	private static String url = "jdbc:mysql://10.11.89.108:3306/sogou_blacklist?useUnicode=true&characterEncoding=gbk";
	private static String user = "sogou_blacklist";
	private static String password = "m6i1m2a3";

	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, user, password);
	}

	public static void free(ResultSet rs, Statement st, Connection conn) {
		try {

			if (rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {

			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {

				try {
					if (conn != null)
						conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
	public static void free(Statement st, Connection conn) {

			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {

				try {
					if (conn != null)
						conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
	}
}