sessionimpl.java
来自「用JAVA实现了,将DB装入内存,内存由DBMS控制,实现简单数据库的创建、数据」· Java 代码 · 共 80 行
JAVA
80 行
package org.kdb.impl;
import org.kdb.DatabaseManager;
import org.kdb.KdbException;
import org.kdb.Session;
import org.kdb.parser.BaseToken;
import org.kdb.parser.Tokenizer;
import org.kdb.struct.Database;
import java.util.List;
/**
* Date: 2007-11-20
* Time: 19:35:22
*/
public class SessionImpl implements Session {
private DatabaseManager dm = DatabaseManagerImpl.getInstance();
public int execute(String sql) {
Tokenizer tokenizer = new Tokenizer(sql);
try {
int cmd = BaseToken.getKey(tokenizer.getName());
switch (cmd) {
case 1:
//todo 执行SELECT
return 0;
case 2:
//todo 执行DELETE
return 0;
case 3:
//todo 执行INSERT
int count = new StatementExecutor(tokenizer, dm).executeInsert();
return count;
case 5:
//todo 执行create
new StatementExecutor(tokenizer, dm).executeCreate();
return 0;
case 4:
//todo 执行Use
dm.setCurrentDatabase(tokenizer.getName());
return 0;
case 11:
//todo 执行 Desc
return 0;
default:
throw new IllegalArgumentException("非法的关键字");
}
} catch (KdbException e) {
e.printStackTrace();
}
return 0;
}
public List<Object[]> executeQuery(String sql){
Tokenizer tokenizer = new Tokenizer(sql);
String str = null;
try {
str = tokenizer.getName();
} catch (KdbException e) {
e.printStackTrace();
}
int cmd = BaseToken.getKey(str);
if(cmd ==1){
return new StatementExecutor(tokenizer,dm).executeQuery();
}else{
System.out.println("查询语句无效");
return null;
}
}
public Database getDatabase() {
return dm.getDatabase();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?