• 存储过程



    存储过程
    CallableStatement(从PreparedStatement扩展来)
    cs=connection.prepareCall("{call psname(?,?,?)}");
    cs.registerOutParameter(index,Types.INTEGER);
    cs.getXXX(i,XXXX);
    cs.executeUpdate();
    int id=cs.getInt(index);

    前端工具下
    数据库上右击-->Create New Procedure/Function-->Name:"...."--

    >Create PROCEDURE-->

    DELIMITER $$   -- 定义分隔符
    DROP PROCEDURE IF EXISTS `jdbc`.`addUser` $$   -- 判断如果存在这个存储过程则删除
    -- 定义参数:IN 输入参数,OUT 输出参数
    CREATE PROCEDURE `jdbc`.`addUser` (IN pname VARCHAR(45),IN birthday DATE,IN money FLOAT,OUT pid INT)
    BEGIN
      INSERT INTO USER(name,birthday,money) VALUES (pname,birthday,money);
      SELECT LAST_INSERT_ID() INTO pid; -- 获得最后一次插入的ID号,放入pid中
    END $$

    DELIMITER ;

    -->Execute;

    public class PsTest {
     public static void main(String[] args) {
      ps();
     }
     static void ps(){
      Connection conn=null;
      CallableStatement cs=null;
      ResultSet rs=null;
      try {
    //   建立连接
    //   conn=JdbcUtils.getConnection();
       conn=JdbcUtilsSing.getInstance().getConnection();//使用单例
       String sql="{call addUser(?,?,?,?)}";
       cs=conn.prepareCall(sql);
       cs.registerOutParameter(4,

    Types.INTEGER);
       cs.setString(1, "ps name");
       cs.setDate(2, new java.sql.Date

    (System.currentTimeMillis()));
       cs.setFloat(3, 100f);
       cs.executeUpdate();
       int i=cs.getInt(4);
       System.out.println("i="+i);
      } catch (Exception e) {
       e.printStackTrace();
      }finally{
    //   释放资源
       JdbcUtils.free(rs, cs, conn);
      }
     }
    }

  • 相关阅读:
    win10开机时内存使用率达到99%以上
    https的基本原理,看完你的程序员女朋友再也不和你提分手了
    Tomcat样例安全漏洞
    Linux5355端口被0.0.0.0监听
    jQuery的ajax
    事件委托(事件代理)
    jQuery的事件绑定和解绑
    事件对象
    JS的事件流的概念(重点)
    jQuery的位置信息
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2287719.html
Copyright © 2020-2023  润新知