📄 databasemanagerimpl.java
字号:
package org.kdb.impl;
import org.kdb.DatabaseManager;
import org.kdb.KdbException;
import org.kdb.struct.Constant;
import org.kdb.struct.Database;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.HashMap;
import java.util.Map;
/**
* Date: 2007-11-20
* Time: 19:45:13
*/
public class DatabaseManagerImpl implements DatabaseManager {
private Map<String, Database> databases = new HashMap<String, Database>();
private Database currentDatabase = null;
private static DatabaseManagerImpl instances = new DatabaseManagerImpl();
private DatabaseManagerImpl() {
}
public static DatabaseManagerImpl getInstance() {
return instances;
}
public String createDatabase(String databaseName) {
String str = this.initDatabase(databaseName);
return str;
}
public Database getDatabase() {
return currentDatabase;
}
public void setCurrentDatabase(String databaseName) {
this.getDatabases(); //这条语句与下一句有什么区别
currentDatabase = databases.get(databaseName);
if (currentDatabase == null) {
System.out.println("数据库不存在,请先创建数据库");
return ;
}
// try {
// File f = new File(new File(Constant.DEFALUT_DATABASE_FOLDER), databaseName);
// if (!f.exists()) {
// try {
// throw new KdbException("数据库不存在,请先创建数据库");
// } catch (KdbException e) {
// e.printStackTrace();
// }
// } else {
// currentDatabase = new Database(databaseName);
// if(!databases.containsKey(databaseName)){
// databases.put(databaseName,currentDatabase);
// }
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
}
public Map<String, Database> getDatabases() {
File f = new File(Constant.DEFALUT_DATABASE_FOLDER);
if (!f.exists()) {
f.mkdirs();
} else {
File[] files = f.listFiles();
for (File file : files) {
if (file.isDirectory()) {
try {
databases.put(file.getName(), new Database(file));
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
return databases;
}
public void closeDatabase(String databaseName) {
}
private String initDatabase(String databaseName) {
File f = new File(Constant.DEFALUT_DATABASE_FOLDER);
if (!f.exists()) {
f.mkdirs();
}
File databaseFolder = new File(f, databaseName);
if (!databaseFolder.exists()) {
databaseFolder.mkdirs();
//创建系统表文件夹
File sysFolder = new File(databaseFolder, Constant.DEFAULT_SYS_TABLE_FOLDER);
sysFolder.mkdirs();
File sysTableFile = new File(sysFolder, Constant.SYS_TABLE_NAME_PRIFIX);
try {
sysTableFile.createNewFile();
RandomAccessFile rfile = new RandomAccessFile(sysTableFile, "rw");
rfile.writeInt(0);
rfile.close();
} catch (IOException e) {
e.printStackTrace();
}
//创建用户表文件夹
File useFolder = new File(databaseFolder, Constant.DEFAULT_USER_TABLE_FOLDER);
useFolder.mkdirs();
return "Database " + databaseName + " is created!";
} else {
return "Database " + databaseName + " is exists!";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -