package com.jcommerce.core.database;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class test {
private Connection conn = null;
public void getConnection() {
DataBaseConnection dataBaseConnection=new DataBaseConnection();
conn = dataBaseConnection.getConnection();
}
private final String TABLE_NAME = "TABLE_NAME";
public List<String> getTableNamesTest(){
getConnection();
List<String> tableNames=new ArrayList<String>();
try {
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs_tables = dbmd.getTables(null, null, null, null);
while(rs_tables.next()){
String s = rs_tables.getString(TABLE_NAME);
tableNames.add(s);
}
conn.close();
return tableNames;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public List<String> getTableNamesFileTest(){
try {
String sequenceFilePath="D:/MyWorkSpace/jcommerce/core/src/com/jcommerce/core/database/tableSequenceForRestore.txt";
List<String> tableNames = new ArrayList<String>();
InputStream inputStream = new FileInputStream(sequenceFilePath);
InputStreamReader reader = new InputStreamReader(inputStream,
"UTF-8");
BufferedReader bufferReader = new BufferedReader(reader);
String tableName = "";
tableName = bufferReader.readLine();
while (tableName != null) {
tableName = tableName.trim();
tableNames.add(tableName);
tableName = bufferReader.readLine();
}
return tableNames;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static void testZip(){
File f = new File("D:/MyWorkSpace/jcommerce/core/src/com/jcommerce/core/database/DatabaseInitialize.zip");
try {
ZipInputStream zipis=new ZipInputStream(new FileInputStream(f));
ZipEntry entry=null;
while((entry=zipis.getNextEntry())!=null){
/*if(entry.getName().equals("DatabaseInitialize/ishopInitialize.sql")){
InputStreamReader ir=new InputStreamReader(zipis);
BufferedReader br=new BufferedReader(ir);
String lineString="";
while((lineString=br.readLine())!=null){
System.out.println(lineString);
}
}*/
// System.out.println(entry.getName());
if(entry.getName().startsWith("DatabaseInitialize/images/")
&& !entry.getName().equals("DatabaseInitialize/images/")&&entry.isDirectory()){
System.out.println(getDirectoyName(entry.getName()));
}
if(entry.getName().startsWith("DatabaseInitialize/images/")
&& !entry.getName().equals("DatabaseInitialize/images/")&&!entry.isDirectory()){
System.out.println(getFileName(entry.getName()));
}
/* if(entry.getName().equals("DatabaseInitialize/images/")){
BufferedInputStream imageInput=new BufferedInputStream(zipis);
File outf=new File("D:/MyWorkSpace/images");
BufferedOutputStream imageOutput=new BufferedOutputStream(new FileOutputStream(outf));
byte[] b=new byte[1024];
int n=0;
while((n=imageInput.read(b))!=-1){
imageOutput.write(b);
}
}*/
}
// ZipFile zip=new ZipFile(f);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getDirectoyName2(String entryName){
int j=0;
int k=0;
//得到倒数第二个出现的"/"的索引
System.out.println(entryName.lastIndexOf("/"));
while((j=entryName.indexOf("/",j+1))<entryName.lastIndexOf("/")){
k=j;
}
return entryName.substring(k+1,j);
}
//得到"DatabaseInitialize/images/"之后的目录路径
public static String getDirectoyName(String entryName){
int fromIndex="DatabaseInitialize/images/".length();
return entryName.substring(fromIndex,entryName.lastIndexOf("/"));
}
public static String getFileName(String entryName){
int fromIndex="DatabaseInitialize/images/".length();
return entryName.substring(fromIndex,entryName.length());
}
public static void main(String args[]){
// testZip();
DataBaseInitialize init=new DataBaseInitialize();
try {
init.initialize();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/* test t=new test();
List<String> tableNames=t.getTableNamesTest();
List<String> tableNamesFile=t.getTableNamesFileTest();
int flag=0;
for(String tableName:tableNames){
flag=0;
for(String tableNameFile:tableNamesFile){
if(tableName.equals(tableNameFile)){
flag=1;
break;
}
}
if(flag==0){
System.out.println(tableName);
}
}*/
/* DataBaseInitialize dbInit=new DataBaseInitialize();
File sqlFile = new File("D:/jcommerce/core/src/com/jcommerce/core/database/ishopInitialize.sql");
// dbInit.readFile2(sqlFile);
dbInit.initialize();*/
}
}