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('wangpan@sohu-rd.com','empty','empty','empty@empty.com','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','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_objects_users_roles','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_operatives','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_roles','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_roles_operatives','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('kasai/kasai_users','wangpan@sohu-rd.com',9);

INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('test/tb_domain','wangpan@sohu-rd.com',9);
INSERT INTO kasai_objects_users_roles(id_object,id_user,id_role) VALUES ('test/tb_prefix','wangpan@sohu-rd.com',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.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.1
2.3
2.5
2.7
(2.8)可选
前缀表
2.2
2.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();
				}
			}
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值