繁体   English   中英

Derby中的存储过程

[英]Stored Procedures in Derby

对于这件事,我是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)如何执行该存储过程,则最好使用存储过程。 但是,如果只为使Java应用程序正常工作而编写此SQL语句,则仅使用PreparedStatement是有意义的。

既然您注意到了Derby和数据库的新手,那么这里有一些很好的资源: http: //download.oracle.com/javase/tutorial/jdbc/index.htmlhttp://db.apache。 org / derby / papers / DerbyTut /

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM