Java Derby中的存储过程

Java Derby中的存储过程,java,sql,database,derby,Java,Sql,Database,Derby,我对德比和数据库都是新手。如何为嵌入式derby数据库创建准备好的状态?我不确定,因为数据库是嵌入的 我的字符串是: final String updateString = "create table " + TABLE_NAME_TBL_IPS + " (" + TABLE_COLUMN_COMPANY + " " + TABLE_COLUMN_COMPANY_DATA_TYPE+ "," + TABLE_COLUMN_IP +

我对德比和数据库都是新手。如何为嵌入式derby数据库创建准备好的状态?我不确定,因为数据库是嵌入的

我的字符串是:


final String updateString = "create table " + TABLE_NAME_TBL_IPS + " (" +
                TABLE_COLUMN_COMPANY + " " + TABLE_COLUMN_COMPANY_DATA_TYPE+ "," +
                TABLE_COLUMN_IP + " " + TABLE_COLUMN_IP_DATA_TYPE + ")";

另外,将其用作存储过程而不是预处理语句调用的好处是什么?

数据库是否嵌入实际上并不重要,只要它具有JDBC连接。在您的情况下,Derby确实为您提供了

您的代码可能如下所示:-

// much easier to read with String.format()... in my opinion
final String updateString = String.format("create table %s (%s %s, %s %s)",
        TABLE_NAME_TBL_IPS,
        TABLE_COLUMN_COMPANY,
        TABLE_COLUMN_COMPANY_DATA_TYPE,
        TABLE_COLUMN_IP,
        TABLE_COLUMN_IP_DATA_TYPE);

Connection con = null;

try {
    con = DriverManager.getConnection("jdbc:derby:yourDatabaseName");

    PreparedStatement ps = con.prepareStatement(updateString);
    ps.executeUpdate();
    ps.close();
}
catch (SQLException e) {
    e.printStackTrace();
}
finally {
    try {
        con.close();
    }
    catch (Exception ignored) {
    }
}
关于是否使用存储过程或
PreparedStatement
执行此操作的问题,您可以轻松地搜索大量信息。通常使用存储过程对一组SQL语句进行分组,而
PreparedStatement
只允许执行一条SQL语句。如果您打算公开该API以允许用户在不考虑技术(Java、.NET、PHP)的情况下执行它,那么最好使用存储过程。但是,如果编写此SQL语句只是为了让Java应用程序工作,那么只使用
PreparedStatement
是有意义的