• 5.16 调用存储过程

    5.16 调用存储过程

    使用工具类 Db 可以很方便调用存储过程,以下是代码示例:

    1. Db.execute((connection) -> {
    2. CallableStatement cs = connection.prepareCall(...);
    3. cs.setObject(1, ...);
    4. cs.setObject(2, ...);
    5. cs.execute();
    6. cs.close();
    7. return cs.getObject(1);
    8. });

    如上所示,使用 Db.execute(…) 可以很方便去调用存储过程,其中的 connection 是一个 Connection 类型的对象,该对象在使用完以后,不必 close(),因为 jfinal 在上层会默认帮你 close() 掉。

    此外,MySQL 之下还可以使用更简单的方式调用存储过程:

    1. // 调用存储过程,查询 salary 表
    2. Record first = Db.findFirst("CALL FindSalary (1,\"201901\")");
    3.  
    4. // 调用存储过程,插入 salary 表
    5. int update2 = Db.update("CALL InsertSalary (3, 123)");
    6.  
    7. // 调用存储过程,更新 salary 表
    8. int update = Db.update("CALL UpdateSalary (3, 99999)");
    9.  
    10. // 调用存储过程,删除 salary 表
    11. int delete = Db.delete("CALL DeleteSalary(3)");