⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sessionimpl.java

📁 用JAVA实现了,将DB装入内存,内存由DBMS控制,实现简单数据库的创建、数据表的创建、记录插入、查询以及表的删除。
💻 JAVA
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -