使用Excel将Excel表格作为数据库

时间:2015-09-12 12:52:11

标签: java database excel search full-text-search

是否有可能比较java中用户的输入

在excel表中有多个属性值?

我试图读取用户的6个输入(症状)并将其与

进行比较

我的疾病症状中的每个属性值都超出表格。

疾病症状是这样的:

------------------------------------------------------------------------
disease_id | disease name | symptoms_1     | symptoms_2    | symptoms_3 |..

    1      |  flu         |  fever         |  dry cough    | headache  |
    2      |  diarrhea    |abdominal cramps| abdominal pain| fever     |

------------------------------------------------------------------------

首先,应用程序会询问:

  

您是否遇到任何这些症状,然后它会显示所有症状_1

值在下拉列表中供用户从中进行选择。然后它问道 对于下一个症状的方式相同。

例如:如果我从第一个下拉列表中选择发烧(所有值为 症状_1),在java中我想将疾病1和疾病2增加20%和

然后当我在第二个下拉列表中选择干咳(所有值为 症状_2),所以疾病_1将是40%。

我的问题是这种方式在java中使用excel作为数据库是可能的吗?

如果没有,请提出解决此问题的想法。

感谢。

1 个答案:

答案 0 :(得分:2)

这是可能的。将Excel文件作为数据库,将表格作为表格,将表格作为表格的列。

1 - 您需要将JDBC ODBC驱动程序添加到项目中。

2 - 下面的代码可以帮助您获取下拉列表的来源(用户选择)。它假定您有一个Excel文件,其中sheet1是您的症状表。 sheet1的列有症状_1,症状_2,......

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main {

    public static Connection getConnection() throws Exception {
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String url = "jdbc:odbc:excelDB";
    String username = "yourName";
    String password = "yourPass";
    Class.forName(driver);
    return DriverManager.getConnection(url, username, password);
}

public static void main(String args[]) throws Exception {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;

    conn = getConnection();
    stmt = conn.createStatement();
    String excelQuery = "select symptoms_1 from [Sheet1$]";
    rs = stmt.executeQuery(excelQuery);

    while (rs.next()) {
      //Fill the data for your drop-down list
    }

    rs.close();
    stmt.close();
    conn.close();
  }
}

希望它有所帮助。