parent
							
								
									6fd5fe8d0a
								
							
						
					
					
						commit
						bea60a3774
					
				@ -0,0 +1,17 @@ | 
				
			||||
package me.lensfrex.manager.data; | 
				
			||||
 | 
				
			||||
import java.util.ArrayList; | 
				
			||||
import java.util.Map; | 
				
			||||
 | 
				
			||||
public class ManagerTool { | 
				
			||||
    private final ArrayList<Student> studentData; | 
				
			||||
 | 
				
			||||
    public ManagerTool(ArrayList<Student> studentData) { | 
				
			||||
        this.studentData = studentData; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public void addStudent(long id, String name, Map<String, Integer> score) { | 
				
			||||
 | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
} | 
				
			||||
@ -0,0 +1,40 @@ | 
				
			||||
package me.lensfrex.manager.data; | 
				
			||||
 | 
				
			||||
import java.util.Map; | 
				
			||||
 | 
				
			||||
public class Student { | 
				
			||||
    private String name; | 
				
			||||
    //private String id;
 | 
				
			||||
    private long id; | 
				
			||||
    private Map<String, Integer> score; | 
				
			||||
 | 
				
			||||
    public String getName() { | 
				
			||||
        return name; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public void setName(String name) { | 
				
			||||
        this.name = name; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public long getId() { | 
				
			||||
        return id; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public void setId(long id) { | 
				
			||||
        this.id = id; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public Map<String, Integer> getScore() { | 
				
			||||
        return score; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public void setScore(Map<String, Integer> score) { | 
				
			||||
        this.score = score; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public Student(String name, long id, Map<String, Integer> score) { | 
				
			||||
        this.name = name; | 
				
			||||
        this.id = id; | 
				
			||||
        this.score = score; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,10 @@ | 
				
			||||
package me.lensfrex.manager.data; | 
				
			||||
 | 
				
			||||
import java.util.ArrayList; | 
				
			||||
 | 
				
			||||
public class StudentManager { | 
				
			||||
    private ArrayList<Student> studentData = new ArrayList<>(); | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
} | 
				
			||||
@ -0,0 +1,8 @@ | 
				
			||||
package me.lensfrex.manager.sqlite; | 
				
			||||
 | 
				
			||||
public class DataTypes { | 
				
			||||
    public static final String SQL_DATA_TYPE_NUMBER = "int"; | 
				
			||||
    public static final String SQL_DATA_TYPE_TEXT = "text"; | 
				
			||||
    public static final String SQL_DATA_TYPE_REAL = "real"; | 
				
			||||
    public static final String SQL_DATA_TYPE_NULL = "null"; | 
				
			||||
} | 
				
			||||
@ -0,0 +1,99 @@ | 
				
			||||
package me.lensfrex.manager.sqlite; | 
				
			||||
 | 
				
			||||
import java.sql.Connection; | 
				
			||||
import java.sql.DriverManager; | 
				
			||||
import java.sql.SQLException; | 
				
			||||
import java.sql.Statement; | 
				
			||||
import java.util.ArrayList; | 
				
			||||
import java.util.HashMap; | 
				
			||||
import java.util.Map; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * SQL操作的简单封装... | 
				
			||||
 * 试图手动封装SQL操作... | 
				
			||||
 * 有BUG?这就对了 | 
				
			||||
 * SQL语句仍在学习中... | 
				
			||||
 * SQL语句拼接怎么这么麻烦... | 
				
			||||
 */ | 
				
			||||
public class SQLiteTool { | 
				
			||||
    private static final String DATABASE_LOCATION = "student.db"; | 
				
			||||
 | 
				
			||||
    private Connection dbConnection; | 
				
			||||
    private Statement statement; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 初始化数据库文件,若成功则返回true,若数据库初始化出现异常则返回false。 | 
				
			||||
     * 不保证数据库中存在欲操作的表,需手动确认。 | 
				
			||||
     * | 
				
			||||
     * @return 初始化是否成功,若成功则返回true,若数据库初始化出现异常则返回false。 | 
				
			||||
     */ | 
				
			||||
    public boolean initDatabase() { | 
				
			||||
        try { | 
				
			||||
            Class.forName("org.sqlite.JDBC"); | 
				
			||||
            this.dbConnection = DriverManager.getConnection("jdbc:sqlite:" + DATABASE_LOCATION); | 
				
			||||
            this.statement = dbConnection.createStatement(); | 
				
			||||
 | 
				
			||||
            return true; | 
				
			||||
        } catch (Exception e) { | 
				
			||||
            System.out.println("Some errors happens when initialing database."); | 
				
			||||
            e.printStackTrace(); | 
				
			||||
            return false; | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 向数据库中创建一个表。 | 
				
			||||
     * | 
				
			||||
     * @param tableName 数据库表的名称 | 
				
			||||
     * @param columns   数据库表列的参数,map中key为列的名称,value为其相应的数据类型。 | 
				
			||||
     * @throws SQLException 如果创建表的过程中发生错误 | 
				
			||||
     */ | 
				
			||||
    public void createTable(String tableName, HashMap<String, String> columns) throws SQLException { | 
				
			||||
        StringBuilder stringBuilder = new StringBuilder("create table %s ("); | 
				
			||||
 | 
				
			||||
        for (Map.Entry<String, String> column : columns.entrySet()) { | 
				
			||||
            stringBuilder.append(String.format("%s %s, ", column.getKey(), column.getValue())); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        String createStatement = stringBuilder | 
				
			||||
                .replace(stringBuilder.lastIndexOf(","), stringBuilder.lastIndexOf(",") + 2, ")") | 
				
			||||
                .toString(); | 
				
			||||
 | 
				
			||||
        statement.executeUpdate(createStatement); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 查询表格是否存在。 | 
				
			||||
     * | 
				
			||||
     * @param tableName 表格名 | 
				
			||||
     * @return 存在,返回true,否则返回false; | 
				
			||||
     */ | 
				
			||||
    public boolean isTableExists(String tableName) { | 
				
			||||
        String tryStatement = String.format("select * from %s", tableName); | 
				
			||||
        try { | 
				
			||||
            statement.executeQuery(tryStatement); | 
				
			||||
            return true; | 
				
			||||
        } catch (Exception e) { | 
				
			||||
            return false; | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 向数据库里插入一条记录。 | 
				
			||||
     * | 
				
			||||
     * @param table  表格名 | 
				
			||||
     * @param values 每一列的数据值,文本类型数据应使用单引号 ' 括住 | 
				
			||||
     * @throws SQLException 如果执行的过程中发生错误 | 
				
			||||
     */ | 
				
			||||
    public void insert(String table, String... values) throws SQLException { | 
				
			||||
        StringBuilder stringBuilder = new StringBuilder(); | 
				
			||||
        stringBuilder.append("insert into ").append(table).append(" values ( "); | 
				
			||||
        for (String value : values) { | 
				
			||||
            stringBuilder.append(value).append(' '); | 
				
			||||
        } | 
				
			||||
        stringBuilder.append(")"); | 
				
			||||
 | 
				
			||||
        statement.executeUpdate(stringBuilder.toString()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
} | 
				
			||||
@ -0,0 +1,4 @@ | 
				
			||||
- Please enter the student information following this format: | 
				
			||||
  [id] [name] ...[subjectName,score] | 
				
			||||
- Example: | 
				
			||||
  23333333 Stud English,100 Math,99 History,98 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue