0

我真的坚持为此设计一个数据库。

这是我自己的 CS 项目。这意味着整个代码都是我的想法。无论如何,我想知道存储图片中显示的所有信息的最有效方法。

我考虑过使用 ArrayList,但我反复质疑自己是否可以使用 ArrayList。我可能可以使用数据库,但我还没有学会它。

图片应该是不言自明的。所有这些信息仅属于 1 名学生。那么,如何设计出最好的数据存储系统来存储至少 20 个学生的信息呢?

由于我无法发布图片,请点击此链接:http: //j.stack.imr.com/0Q.png

感谢帮助。

4

3 回答 3

0

看起来像一个数据库表,每个学生一行,另一个数据库表,每个作业一行。我要么让数据库在我存储它时为每个学生记录创建一个索引(关系数据库中的当前方式),要么我可以使用学生 ID 号,假设它是唯一且永久的(我认为它是一个较弱的选择)。每个学生记录和每个作业记录中都有这个索引,因此每个作业都与一个且只有一个学生相关联,但您可以将多个作业与一个学生相关联。

有许多免费数据库可用;我用过并喜欢德比;如果您只是从这个程序访问它,您可以将它用作“嵌入式”数据库,从而为您的程序连接运行数据库服务器省去一些麻烦。

祝你好运。

于 2013-03-25T02:37:35.033 回答
0

我相信最好的方法是通过数据库。
既然您提到您对 DB 了解不多,让我为您指明正确的方向
首先安装XAMPP(这将允许您在本地计算机上创建 MySQL 数据库)

您必须将 JDBC 驱动程序安装到您的 IDE 中(无论您使用的是 netbeans 还是 eclipse)

在您的项目中创建一个或多或少像这样的类

public class SQLConnect 
{
    public static Connection ConnectDb() 
    {
      try
      {
          Class.forName("com.mysql.jdbc.Driver");
          Connection conn = null;
            try {
                conn = DriverManager.getConnection("jdbc:mysql://localhost/w1283057", "root", "");
            } catch (SQLException ex) {
                Logger.getLogger(SQLConnect.class.getName()).log(Level.SEVERE, null, ex);
            }
          return conn;
      }
      catch (ClassNotFoundException e)
      {
         System.out.println("not connected");
         e.printStackTrace();//print extra info if error is thrown
         return null; 
      }

  }


}

然后你可以在你的另一个类上创建 SaveActionPerformed (你有表单表)
它可能看起来像这样(请不要这是你与 SQLConnect 类建立连接以及将数据插入数据库的地方

public class Something extends javax.swing.JFrame 
{
      Connection conn = null; //A connection (session) with a specific database
      ResultSet rs = null; //A table of data representing a database result set, which is usually generated by executing a statement that queries the database.
      PreparedStatement pst = null; //An object that represents a precompiled SQL statement.A SQL statement is precompiled and stored in that object

     private void SaveActionPerformed(jawa.awt.event.ActionEvent evt)
     {  
        try{
        conn = SQLConnect.ConnectDb();
        //inserting all values to database            
        String sql = "INSERT INTO bla"
                   + "(foo, foo1, foo2, foo3, foo4, etc"
                   + "VALUES (?, ?, ?, ?, ?)";  
        pst = conn.prepareStatement(sql);

    //Than you take all values from the fields and put them into db
    // i.e. You have field name Mark. In order to put this into db you need 

     pst.setString(1, Mark);  <- this means that preparestatement will put whatever is in the mark into first column.
     pst.executeUpdate(); <- order to execute

      }

希望这会让你走上正确的轨道

于 2013-03-25T02:38:09.797 回答
0

对我来说,最好的方法是使用 Postgresql。您只需要一个表学生(例如)将存储所有学生数据。之后,您可以创建一个或多个类(取决于您)来描述表格并执行一些操作,例如搜索学生或其他。Postgresql 的主要优点是不需要服务器!这是一个教程

于 2013-03-25T02:39:11.663 回答